smarter error wrapping