public function get($key, callable $resolve = null, $ttl = null)
    {
        $pool = $this->cachePool();
        $item = $pool->getItem($key);
        $data = $item->get();

        if ($item->isHit()) {
            return $data;
        }

        if (is_callable($resolve)) {
            $data = $resolve($data, $item);
            $this->save($item, $data, $ttl);
            return $data;
        }

        return null;
    }