patch virtual dom