Colour should be an abstract type
draw scene based on state