modularized code and directory structure