Should really return a promise here instead of the actual Deferred object...

`return defer.promise()`