generate directory