Merge pull request #1 from cusmonaut/Refactoring

Refactoring classes into different files
Merge pull request #2 from cusmonaut/Refactoring

Added gitignore default file
Merge pull request #2 from cusmonaut/master

Rafactoring and general cleanup