Fix multi command, refactor

* add tests
* fix multi command
* use thunkify for more solid callback handling
* sensible refactor to iterate over prototype instead of using the commands list (adding missing methods)