should also load classes in sub package
could find implementation class by class or interface
add gradle, remove hamcrast
could get implementation by parent class
handle interfaces and super class of super class