1. A method of controlling user experience with an application on a client device including at least two resident client entities, the method comprising: modifying behavior of the application on the client device through negotiation between the at least two resident entities according to pre-defined rules; and rendering the application on the client device based on the pre-defined rules using at least one of the resident client entities.