abstract out time by using offsets.