Major touchup

* Added namespace
* Added docblocks
* Refactored code for more readability
* Improved composer configuration