Tag: c# abstraction vs encapsulation