1. A computer-implemented method for creating an Application Programming Interface (API) for a code module to be used in a computer system, the method comprising: creating a new module by composing one or more existing modules by a processor; and defining an API for the new module using a set of API elements of said one or more existing modules, wherein each of the one or more existing modules comprises a combo comprising unique combo identifier, an API element list comprising a collection of API elements, a hidden API element list comprising a collection of API elements that are not presented with the combo, a frontstage object comprising a frontstage combo list comprising a collection of combos and a backstage object comprising a backstage combo list comprising a collection of combos.