support for better error messaging and handling