Outer loop redundant. Main loop is handled by separate class.
Improve event method names. Use next action instead of describing what happened.