Removed a lot of generics and updated documentation.