add timer implementation