Allow for more than three params

This has also reduced the amount of code required in the controller lib. I also did some basic speed testing and the changes don't seem to have impacted performance.

If there's a reason you decided to only allow a maximum of three parameters that's fine :)