Use singleton for storage so we can save the game state after everything has been done.
Merge remote-tracking branch 'origin/master'