now handle recursive directory