further refactored the different engine subsystems, renamed program entry point source file for clarity