Refactored for easier separation of generated interfaces into multiple jars