Major refactor, and switching to timers everywhere