Changed how we process events by polling first to see if there are events to process. This keeps the app real-time and not hanging waiting for keypress.