only patch props diff rather than all props

patching only changed properties is more efficient than patching all props