1. A program controller arranged for use with a modular system, and arranged to manage a program for use with a replaceable hardware module of the modular system, the module being a customer-replaceable part, the controller being arranged to manage the program automatically, according to an agreement between a supplier and a customer, and according to a stored history of use of the hardware module.