Move more game logic out of Ember as it does not feel like a good fit, can split this into separate libraries down the line