improved value, object and color dispatch