Added: separate player state, event handlers
+ cleaning