divergent and convergent timelines as a way to support collaboration, and provides facilities for conflict resolution. Even in systems without such rich models of history, time is often an explicit-and directly manipulable-part of the user interface, and user experience. Systems such as TimeMachine Computing [15] and Lifestreams [6] are exemplars of this trend.All of these systems rely on an explicit model of history, which can be scanned to support search or "navigation" over a timeline, and all allow their timelines to be "traversed" to move the application's state to other points in its history. However, as powerful as these applications are, their timeline representations are for the most part exceedingly simple. They typically support only linear, not branching timelines (GINA and Timewarp are exceptions, however); the "nodes" in a timeline must represent atomic operations with side effects that are well understood at the time the application is created; and, typically, the timeline of the entire application must be navigated or traversed as a whole-it is impossible to have a portion of the timeline exist in a "bubble" that can be manipulated separately.While we don't commonly encounter such rich models of time in our day to day experience, they can be extremely useful nonetheless. Divergent timelines, for example, can be employed to allow users to interact with different but related versions of an artifact, and then reconcile those differences later. The ability to expand the representation of time in ways that better accommodate side effects can make applications easier to write. And being able to separate the history of one nested artifact from the history of the application as a whole can allow users to work locally on a document, project source code, et cetera, and still integrate their changes globally. This paper presents an expansion of the most traditional representation of timelines, which is based on the command object idiom. The research here makes two contributions. First it extends this traditional model of history to better support the causality effects often found in "real" applications. This first extension works for both linear and divergent timelines. Second, this new causal model is then extended to support multi-level or "interleaved" timelines, in which the various components of an artifact can exist at ABSTRACT A number of recent systems have provided rich facilities for manipulating the timelines of applications. Such timelines represent the history of an application's use in some session, and captures the effects of the user's interactions with that application. Applications can use timeline manipulation techniques prosaically as a way to provide undo and redo within an application context; more interestingly, they can use these same techniques to make an application's history directly manipulable in richer ways by users. This paper presents a number of extensions to current techniques for representing and managing application timelines. The first extension captures causal relations...