refactor for timedown and timestring