Updated documentation, internal + external

Added documentation to each class and all of their methods.