added documentation on the class and module level