Add recursive walk in folders. Add unit tests. Fix bugs.