public function has($selector)
    {
        $pointer = &$this->data;

        foreach (explode('.', $selector) as $field) {
            if (!array_key_exists($field, $pointer)) {
                return false;
            }

            $pointer = &$pointer[$field];
        }

        return true;
    }