Bundler refactoring

@dchambers one for you to review

- refactoring bundler interfaces
- also includes some very basic JavaDoc for interfaces and some interface renaming