added color and opacity functions