Checkpoint commit - cleaning up codebase, separating files, using more SOLID design