Nitpick: You've made this a class, store the state in the class rather than passing it recursively down these method calls?  I feel like you want a method on your object that takes a path and adds everything new under that path, and then just a single static method that calls that with the classpath, maybe?  Your interface/ownership plan is a tad confusing, I guess.