first pass at exception handling