Initial commit, split up the game into components.