wrap method is final