private function buildTemplate(HottextInteraction $interaction)
 {
     $templateCollection = new QtiComponentCollection();
     foreach ($interaction->getComponents() as $component) {
         // Ignore `prompt` since its going to be mapped to `stimulus`
         if (!$component instanceof Prompt) {
             $templateCollection->attach($component);
         }
     }
     $content = QtiMarshallerUtil::marshallCollection($templateCollection);
     foreach ($interaction->getComponentsByClassName('hottext') as $hottext) {
         /** @var Hottext $hottext */
         $hottextString = QtiMarshallerUtil::marshall($hottext);
         $tokenSpan = new span();
         $tokenSpan->setClass('lrn_token');
         $inlineCollection = new InlineCollection();
         foreach ($hottext->getComponents() as $c) {
             $inlineCollection->attach($c);
         }
         $tokenSpan->setContent($inlineCollection);
         $content = str_replace($hottextString, QtiMarshallerUtil::marshall($tokenSpan), $content);
     }
     return $content;
 }