Alright. My concern was as a practice of "This is that OOP thing" the code really is just showing off classes and structs. But in reality OOP should be about code reuse. Like if he had a new requirement to input a planet (A,B,C) and they each had different aging speeds (1.0, 1.5, 2.0) the Family class would need to be updated to be aware of being on a different planet but in reality it should be the main method's charge (or possibly a Person implementation but lets not get all Enterprise FizzBuzz here) to handle knowing the user input they're on planet B and all ages need to be multiplied by 1.5.