add deferred mothod
tests