need a clear concept of file-, class-, and method- level errors
they need to be propagated upwards
one file/class failing should be reported as a failure rather than breaking the whole lot
don't report stack traces for reported errors
replace passing a progress writer + $progress_writer->write($event_arg1, $event_arg2...)$writer->write($event) to enable a hierarchy of events with varying arguments
$progress_writer->write($event_arg1, $event_arg2...)
$writer->write($event)
to enable a hierarchy of events with varying arguments