Text this: Generative Programming and Component Engineering