generalize event loop and collect tests into children of "game"