why wrap the method?