public function offsetUnset($key)
    {
        if (!$this->allow_modification) {
            throw new RuntimeException('Attempting to unset key on an immutable array');
        }

        if ($this->offsetExists($key)) {
            parent::offsetUnset($key);
        }
    }