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());
  }