implement TimeMachine