added some classes for file traversal