generalized directory structure