Introduce setProp, update attribute morph to have similar behavior