Attempt to refactor and clean-up plug-in interface by reducing number of generics