updated checks in ttl_expired? no need to recalculate now that the model stores the expiration time