Adding support for product families is stretching script
enough that OO will help; beginning refactoring
make minimal method static or virtual, begin tidying
merging back comments made before refactoring