added some implementations and tests
some stuff that i have no idea what they do
more changes
changed the Book class to look more like the table on listdocuments feature
refactored documents to become an interface