boolean applyArgoController(Class<?> clazz, Pattern controllerPattern) {

    return ArgoController.class.isAssignableFrom(clazz)
        && controllerPattern.matcher(clazz.getName()).matches()
        && !Modifier.isInterface(clazz.getModifiers())
        && !Modifier.isAbstract(clazz.getModifiers())
        && Modifier.isPublic(clazz.getModifiers());
  }
 private <T> T newInstanceByClass(Class<T> clazz, String message) {
   try {
     return clazz.newInstance();
   } catch (Exception e) {
     throw ArgoException.raise(message, e);
   }
 }