moved event loop and timers to new obj model