PhaseHolder, which contains a collection of Phase. Each Phase can hold a Comment, and each Comment can hold a list of Reply.PhaseHolder object contains a bool property that should control adding comments, but this can be avoided:IPhase interface , but these models also serve as my EF core models, which need a concrete type, e.g. IReadOnlyCollection<Phase>