docs: @SuppressWarnings("unchecked")
      public static <T> T instantiate(final Class<T> tClass) {
          try {
              if(tClass == null)
                  return null;
  
              final Constructor<?> zeroArgConstructor = Arrays.stream(tClass.getDeclaredConstructors())
                      .filter(c -> c.getParameterCount() == 0)
                      .findFirst().orElse(null);
  
              if(zeroArgConstructor == null) {
                  logger.warning("[CAN NOT INSTANTIATE] : " + tClass + ", have NO zero arg constructor.");
                  return null;
              }
  
              return ((T) zeroArgConstructor.newInstance());
          } catch (InstantiationException | InvocationTargetException e) {
              logger.warning("[CAN NOT INSTANTIATE] : " + tClass
                      + " - class may be an abstract class, an interface, "
                      + "array, primitive." + e.getMessage());
          } catch (IllegalAccessException e) {
              logger.warning("[CAN NOT INSTANTIATE] : " + tClass
                      + " - no access to instantiating object." + e.getMessage());
          }
          return null;
      }