make sure range exists before using it
don't use rnage if non existed when applying diffs
handle diff case of inserted text node with sibling text nodes
integrate editor templates into editor-helpers
save document using json to avoid innerHTML normailization