make getOrDie idiomatic, split read to readPreCheck and readMain