improved colour handling