return deferred.promise instead of deferred

in order to protect it's reject and resolve