going on

1. use .then to stop deferred done/fail chainning
2. fix context problem
3. add new member function setRoutingRule