Abstract base class to be extended by plugins