Fixed bug of empty sub-dirs not getting copied

Cleanup, refractoring, and empty subdirs not getting copied over. This
commit should close out this branch.