Moved functionality around to different classes
Added a sample project
Corrected configuration entities
Added tests