only patch props diff rather than all props