1. A method used in a client device, comprising: presenting an application behavior specification and a presentation specification during run-time, wherein the application behavior specification is a user modifiable file separate from the application that allows a user to specify a behavior of the application that was not previously available from the application and the presentation specification is a user modifiable file separate from an application that allow the user to specify a presentation that was not previously available; receiving at least one input corresponding to a proposed modification to at least one of the application behavior specification and the presentation specification; determining permitted modifications to the at least one of the application behavior specification and the presentation specification based on a set of pre-defined rules; and generating a new application by modifying the at least one of the application behavior specification at run-time based on the permitted modifications.