deferred implemented, ttl added, needs more testing