better color implementation