call me narrow-minded but we are not creating a $q instance but a 'deferred' instance. At least that's what AngularJS calls this (http://docs.angularjs.org/api/ng.$q) :
'The Deferred API
A new instance of deferred is constructed by calling $q.defer().'
Merge pull request #10 from tkothe/master

Not a $q instance but a 'deferred one