#123 moved abstract plugin base classes to api package