first take on a new system for exception reporting; still needs cleaning up and some thinking