add support for colour state lists and various styling options