implement one_tick