more generalized colouring