public function defaults($key = null)
    {
        if (is_string($key)) {
            if (!$this->has($key)) {
                throw new Exception(sprintf(Exception::STATS_KEY_NOT_EXISTS, $key));
            }

            return $this->defaults->offsetGet($key);
        }

        return $this->defaults->toArray();
    }