1. A method of rendering a user interface of an application operating on a computer system, the method comprising: constructing a first data structure by interfacing with the application, the first data structure having first objects associated with the user interface of the application; constructing a second data structure separate from the first data structure, the second data structure having second objects associated with the first objects of the first data structure; receiving from the application a change for at least a portion of the first data structure from a first state to a second state; changing the portion of first data structure from the first state to the second state; determining an animation for animating the change of the portion of the first data structure from the first state to the second state; and rendering from the second data structure for display with the computer system by implementing the determined animation on the second data structure.