I was going to do it with json, but then some wacky things happened with the diffing engine. I would prefer to use the json method if possible, and it technically works with all of the commented code. You can uncomment it and see what I mean by wacky things.