#136 rewrote the plugin API from scratch.