Change the flow of the framework kernel

Remove the duplicate response event code and add some documentation
Some documentation
Throw an exception if no valid controller is found
Adding some documentation