implementing time travel