code: protected T createInstance() {
  		try {
  			return targetClass.newInstance();
  		} catch (InstantiationException e) {
  			throw new RuntimeException(e);
  		} catch (IllegalAccessException e) {
  			throw new RuntimeException(e);
  		}
  	}
docs: Creates a new instance using the class.  overload this to handle more complex constructors