Seperate out PlayerListener from event handling system