Merge pull request #36 from onijim/feature/refactoring-and-more

Feature/refactoring and more