updated unit tests, cleaned up some code, fleshed out and polisted the main game loop, and fixed a couple small bugs/added long running unit test to expose the bug I found