Finished last commenting and split the classes into more packages to better reflect their role in the project