Home Architecture Understanding Dependency Inversion Principle with C#