https://medium.com/@blendvisions/mastering-dart-9-essential-concepts-for-flutter-beginners-41543a3f07f1