https://getvm.medium.com/unleash-your-software-design-prowess-with-software-design-by-example-a-tool-based-introduction-63b37de286d8