analytics overhaul
use exceptions instead of events for error reporting