statements, events, and threads should be in correct order