design for C#