Added SignalColour Enum rather than using string all over the place, so I can work with a conrete type. (more managable)