wrapping methods