refactors into packages; adds some tests for handling XML; adds equality method to DirectoryDescriptor