A Virtual DOM and diffing algorithm