private function text_optimize (Component $c)
  {
    $o    = [];
    $prev = null;
    if ($c->hasChildren ())
      foreach ($c->getChildren () as $child) {
        if ($prev
            && $prev instanceof Text
            && !$prev->getBindings ()
            && $child instanceof Text
            && !$child->getBindings ()
        ) {
          // safe to merge
          $prev->props->value .= $child->props->value;
          continue;
        }
        $o[]  = $child;
        $prev = $child;
      }
    $c->setChildren ($o);
  }