Major refactoring, plus support for 3rd party jars