https://tomas-svojanovsky.medium.com/comprehensive-guide-to-functions-and-closures-in-rust-5a180c386b77