Discovered that to$q MUST call $apply or chained $q.then methods won't be called!
see https://groups.google.com/forum/#!topic/angular/LQoBCQ-V_tM