public function read($id, $next)
    {
        $data = $this->_read($id);
        if ( false === $data ) {
            $data = $next($id);
            if (false !== $data) {
                $item = new MemoryItem($data);
                $this->cache[$id] = $item;
            }
        }

        return $data;
    }