Refactored, separate files for classes. Added save and load functionality