Refactor, fix few things
* Use shared library to load protocol handler and other business related code
Default implementation, provided as example and to allow project to build