Any suggestions for an Architecture improvements ? - C#