1. A computer program product, tangibly embodied in a machine-readable information carrier, the computer program product being operable to cause an apparatus to: accept user input defining a first modification at a first enhancement point of a first source code component, the first source code component not being modified; create a second source code component for the first enhancement point, the second source code component being separate from the first source code component; incorporate into the second source code component the first source code component and an expression of the first modification; and create a compiled program using the second source code component.