impl color, in bad need of refactor