new plugin type and refactored request classes