protected function & getArrayByReference(&$offset)
    {
        $offset = explode(self::SEPARATOR, $offset);

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

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

        return $arr;
    }