I need to use DTOs to represent all of the different ways that pools exist and set up a good inheritance structure around it.