Documenting and refactoring for decoupling.
Improving the error_log message
new exception throw if method does not exist.
So we can capture the errors in router, for instance