https://medium.com/@JakenH/error-handling-and-input-validation-in-rust-cli-programs-with-anyhow-6835485332e2