https://medium.com/@adamszpilewicz/error-handling-in-async-rust-best-practices-for-real-projects-46a2cce1cecc