Refactored so plugins are implemented by extension rather than functions and maps
Removed pluginTypes lookup mapping