[timers] rewrite to use setInterval and pass arguments, add Remove()