Architecture help - C#