design question - C#