revamped color into basic_color, can now represent different pixel formats.