add documentation for class diagram

I think this should resolve #15, just need to keep the diagrams up to date.