added support for any color type that has r, g, b, a members