If it's not too much hassle this would be much nicer if it was a plain old JS object, that was mixed in to the Viewer/Editor prototype with `$.extend()`. The only thing I can see that prohibits this is the `classes` object but a "deep" extend should work.

It was a terrible idea putting objects on the prototype sorry about that.