Added HardwareFactory, IHardware and SimulatedHardware classes.