https://medium.com/go-rust-and-julia-programming/frameworks-are-crutches-when-rules-replace-reasoning-fbe27d56ffc6