better color functions.