code: public ClassBuilder<T> withMethod(String methodName, Class<?> returnClass, List<? extends Class<?>> argumentTypes, Expression expression) {
  		Type[] types = new Type[argumentTypes.size()];
  		for (int i = 0; i < argumentTypes.size(); i++) {
  			types[i] = getType(argumentTypes.get(i));
  		}
  		return withMethod(new Method(methodName, getType(returnClass), types), expression);
  	}
docs: Creates a new method for a dynamic class
  
  @param methodName    name of method
  @param returnClass   type which returns this method
  @param argumentTypes list of types of arguments
  @param expression    function which will be processed
  @return changed AsmFunctionFactory