I think I would like the flag and mainloop approach, but not sure I'd want it to do the actual rotation. I think your current design of having the modules figure it out when the time comes is nice and simple.