public function detachControl(FieldContract $control)
    {
        $name  = $control->name;
        $value = $control->value;
        foreach ($this->controls as $index => $field) {
            if ($field->name == $name && $field->value == $value) {
                unset($this->controls[$index]);
                unset($this->keyMap[$name]);
            }
        }
        return $this;
    }