C# inheritance needs update to move switch to interface and use "virtual" option