public function get($attribute, $arrayAsMap = true)
    {
        if ($this->has($attribute)) {
            $value = $this->attributes[$attribute];

            if ($arrayAsMap === true && is_array($value)) {
                $value = new self($value);
            }

            return $value;
        }

        throw new \OutOfBoundsException("Attribute '{$attribute}' does not exist");
    }