impl timer using slist