I think using Tick should help you get rid of all this duplication