TODO - define the actual diff bindings - find out how to inject the views
these are just empty class files, but writing a basic description for each made me flesh out a lot of organisational aspects of what I am about to build now