throw better exceptions
coverity