timer fires only once, so i wrote my own timer