1. A system for designing parts or assemblies of parts, with (a) a history-based design system having a storage format with primitives and operations, a part or assembly of parts being defined in the history based design system by an ordered sequence of operations and primitives; (b) at least two functional features, each of which is adapted to be instantiated by a end user by providing a set of specifications, an instantiated functional feature providing at least a contribution, a contribution being an ordered sequence of operations and primitives of the history-based design system; (c) a seed structure defined using a context-free grammar, the seed structure being adapted to receive contributions from instantiated functional features, to order operations and primitives of received contributions and to provide an ordered sequence of operations and primitives to the history based system; (d) an editor for editing the seed structure in said grammar.