don't use post-command-hook, use timers