added most of the code.
cleaned up some of the initial color code -- add add_colors method.