modularized code
documenation