add opacity propagation