basic implementation of the plugin, including some integration tests