first pass for new error handling infrastructure