public function shouldCreateSnapshot(AggregateRoot $root)
    {
        if ($root->hasChanges()) {
            $lastSnapshot = $this->store->get($root->getIdentity());
            $threshold = new \DateTime(date('c', strtotime('-' . $this->threshold)));

            if ($lastSnapshot->getCreationDate() > $threshold) {
                return true;
            }
        }

        return false;
    }