[documentation] [refactoring]
* added some documentation
* cleaned up class names to match functionality