Updated MacroEngineFactory to use PluginTypeResolver and made it thread safe. Have also updated it to only create one instance of each IMacroEngine per application which should increase performance a teeny bit, plus that's how it should be.