refactor time!