Transfer the recursive dir-walker to a separate module;
Convert the foreach loop to a for loop in dir-walker for better
performance.
Add multi-target and multi-dir test scenarios (incomplete);