refactoring
partially rewrite documentation