Feature/refactor helper classes

Refactored helper classes.
Closes #23, #22, #20, #18.