tree structure: lib, test, spec