public function inRange(TimePoint $expiration, TimePoint $creation = null, $skew = null): bool
    {
        $now = $this->read();

        if ($skew !== null) {
            if ($creation instanceof TimePoint) {
                $creation = $creation->modify(sprintf('-%s', $skew));
            }

            $expiration = $expiration->modify(sprintf('+%s', $skew));
        }

        return $now->compare($expiration) !== 1 && (!$creation instanceof TimePoint || $now->compare($creation) !== -1);
    }