Add plugin support; currently replaces opaque protocol type