differentiate server errors from user space exceptions
proper async timeout + some error handling