Architecture Advice (For CSharp)