public function remove($index)
    {
        if (!isset($this->names[$index])) {
            return false;
        }
        $this->context->getMappings(); // force parsing
        unset($this->names[$index]);
        $this->names = array_values($this->names);
        $this->indexes = array_flip($this->names);
        $this->onRemove($index);
        return true;
    }