4 different timer implementations in typescript