public function remove($id)
    {
        if ($this->locked) {
            return false;
        }

        if (strpos($id, '.') !== false) {
            $k = '$this->data' . "['" . str_replace('.', "']['", $id) . "']";
            eval('$has = isset(' . $k . ');');
            if ($has) {
                eval('unset(' . $k . ');');
                return true;
            } else {
                return false;
            }
        } elseif ($this->has($id)) {
            unset($this->data[$id]);
            return true;
        } else {
            return false;
        }
    }