public function tryFetch($id, $maxLifetimeSeconds = null)
    {
        $entry = $this->storage->tryFetch($id);

        if (null === $entry) {
            return null;
        }

        if (null !== $maxLifetimeSeconds) {
            if (($this->nowTimestamp - $entry->creationTimestamp()) > $maxLifetimeSeconds) {
                return null;
            }
        }

        if (null !== $entry->expirationTimestamp()) {
            if ($this->nowTimestamp > $entry->expirationTimestamp()) {
                return null;
            }
        }

        return $entry->data();
    }