Structure of system with polymorphism - C#