Refactor/factories

* Refactor `trip` and `split` controllers to have factories
* Rewrite algorithm so that people are told how much to send to whom