Added experimental color support

Untested, uses c coding, may want to change to c++ level