❔ best design practice for this? - C#