changed the interfaces of the library
changed the way subclasses inherit superclasses
changed the way users interact with the library and moved shareable methods into its prototype