lazy sequence of events can be generated, and a snapsnot of state is obtainable by calling timeline