Huge refactoring and moving of files to make project more understandable
Merge origin/master