https://medium.com/@Hazall/build-your-first-command-line-tool-in-rust-learning-rust-part-9-10-a05401cb5410