fix the rethrow and message. thanks jnthn++