protected function remove($key)
    {
        if ($this->readonly) {
            throw new ContainerReadOnly($this);
        }
        if ($this->errProp) {
            if (!array_key_exists($key, $this->source)) {
                throw new FieldNotExist($key, $this);
            }
        }
        if ($this->fixed) {
            throw new FieldNotExist($key, $this);
        }
        unset($this->source[$key]);
    }