refactored docu