protected function &getStackByReference(&$key)
    {
        $key = explode(self::SEPARATOR, $key);

        if (count($key) > 1) {
            $arr = &$this->getStackReference($this->storage, array_slice($key, 0, -1), false);
        } else {
            $arr = &$this->storage;
        }

        $key = array_slice($key, -1);
        $key = reset($key);

        return $arr;
    }