base structure for plugin