wrap game events in async call.  This should be moved into a standard method so you can't directly invoke listen anymore