optimized for deferred objects