C# Plugin architecture example