https://medium.com/@ahmedtahaelelemy/understanding-solid-principles-interface-segregation-principle-in-flutter-f7548e54ffb