To Do: 24/MAY/06 Figure out a straightforward way to record the commands which come in and the records which come out from the standard output. This will probably best be done by splitting input/output into pairs of methods - _input/_output which is overloaded by the Driver implementation and input/output which the clients use, which has the recording functionality build in. This is probably the only way to do this - a Decorator probably won't work! No - definately won't work, because I don't know the initial method name to pass the call on to if it's overloaded. 30/MAY/06 This is what I have implemented. Driver API specifies call input() -> this is recorded then delegated to the Driver implementation _input() method. Simple. This means that the _input() method must be overloaded - not input()! 19/JUN/06 Implement a ClusterDriverFactory which will create a ClusterDriver instance (to the client looks like a Driver) if "cluster" is in XIA2CORE_DRIVERTYPE. Can be specific like "cluster.sge".