refactor($q): make $q Promises A+ v1.1 compilant

Refactor to make $q Promises A+ v1.1 compilant
I'm not really sold on this, we need to do this better. But I won't hold you to that for this PR