1. A method comprising: detecting a change to a virtual application executing on a device, the executing virtual application having a configuration and a first state, the executing virtual application interacting with a plurality of external resources, the plurality of external resources being external to the virtual application, the change defining a second state, the change detected through interaction with at least one of the plurality of external resources; determining a context for the second state; and storing the change based on the context.