Move events into core
Bind *state* so you dont need to pass game state