Refactored plugin base classes