refactoring deferred operations