Is this a good way to structure a project? - C#