initial work on recursive upload

work on #573 .