Implement pause, nicer event handling