Refactored the tool api to allow the usage of the Java ServiceLoader mechanism.