Reimplement controller handling.
Reimplement router.
Todo: needs tests.
Use reimplemented components.