1. A method comprising: assisting an end-user in creating a customization of a new version of an application from a customization of an old version of the application, wherein the customization of the new version of an application comprises at least one end-user-created module, the at least one end-user-created module is created from at least one of a plurality of reusable modules, wherein the assisting comprises; receiving an indication of one or more changes to be made to one or more variables of the at least one of the plurality of reusable modules, wherein the at least one end-user-created module is configured to inherit attributes of the at least one of the plurality of reusable modules, and the at least one end-user-created module comprises the one or more changes to be made to the one or more variables; automatically checking for a conflict between the at least one end-user created module and the plurality of reusable modules; in response to not detecting the conflict, executing the customization of the new version of the application in such a manner that the functionality associated with the at least one end-user created module is accessible to the end-user.