crazy WIP: use throw/buffer as primary reporting modes