use a logic ticker to fix the timing issues