https://guide.elm-lang.org/architecture/