Rewrote controllers with help of magic functions

Since all the controllers are mostly identical, calls to the controllers
are now processed via the magic function __call()