Game logic works but is incomplete.  Merging what I have back to master.