Major refactoring, the project is now ready for more dunctionality