add exceptions in reader instead of MaybeT; exceptions still need proper handling in worker