https://appdevbyamitesh.medium.com/mastering-swift-inheritance-initialization-deinitialization-essential-concepts-for-advanced-892107225de8