PluginFileOpener class extracted to a separate file