Finished refactoring and commenting all classes. That was fun. A few improvements here and there