adding submodule traversal, removing cruft