push error messages all the way back to client. fixes #2
add some basic test