code: @SuppressWarnings("unchecked")
  	public static <T> Class<? extends T> findImplementationClass(Class<T> clazz) {
  		if (!Modifier.isAbstract(clazz.getModifiers())) return clazz;
  		
  		String implementationClass = String.format("%s.impl.%sImpl", clazz.getPackage().getName(), clazz.getSimpleName());
  		try {
  			return (Class<? extends T>) Class.forName(implementationClass);
  		} catch (ClassNotFoundException e) {
  			throw new NoImplementationClassFoundException(clazz, e);
  		}
  	}
docs: Finds the implementation class of a type on the classpath. <br/>
  If the class is already a concrete class, returns itself. Otherwise, it searchs for an
  implementation class that matches the pattern {classPackage}.impl.{className}Impl . <br/>
  A more sofisticated search is planned to be implemented on the future.
  
  @param clazz The class.
  @return The implementation of the class.
  @since 0.3.0