Separated both responsabilities of DirectoryWalker into a different hierarchy, and wrapped the C callback to support an OOD