learned C# inheritance