support custom status code and message

fix #350
do we really need this?