improve deferred_map