Refactor and fix #1

Refactor enabling inclusion of public methods into the controller namespace
all methods moved into request class. Public methods are exposed in the
controller namespace are composed of methods from the request class.

This commit also fixes and closes #1