Add configuration and specs, and make Color immutable