https://dart.dev/guides/language/language-tour>Use the factory keyword when implementing a constructor that doesn’t always create a new instance