bwRavencl's Multi controller (Clean merge)

This is the necessary commits from bwRavencl's pull request with a few minor fixes and some changes so it will merge without having to diff anything.