Refactoring to move each class into it's own file, with module structure