Figure out a clean way to support alpha channels. This class will preserve them but as soon as you call a color model for conversion they'll be discarded. I think this class will need to maintain a separate variable for the alpha channel it really seems independent of the color model. 50% red would be the same no mater how you represent it.