factored out colouring logic into a tack category