https://bytefish.medium.com/why-go-rust-nim-and-other-emerging-languages-abandon-inheritance-and-constructors-d1032be0cea9