recursive directory build working