extract initial_time handling, fix bug

Something in the ordering I had in update_time made the current time stop updating. The static time stuff didn't need to be called more than once anyway, so I extracted that to a separate function, called only once.