added abstract
refactoring documentation