reworked time keeping functionality