diff --git a/lib/get-api.js b/lib/get-api.js
index <HASH>..<HASH> 100644
--- a/lib/get-api.js
+++ b/lib/get-api.js
@@ -56,7 +56,6 @@ function getApi (state) {
     // helpers
     request: require('./request').bind(this, state),
     log: log,
-    plugin: require('./plugin'),
 
     // events
     on: require('./events').on.bind(this, state),
@@ -65,6 +64,8 @@ function getApi (state) {
     trigger: require('./events').trigger.bind(this, state)
   }
 
+  api.plugin = require('./plugin').bind(null, api, state)
+
   internals.init(api)
 
   return api
diff --git a/lib/plugin.js b/lib/plugin.js
index <HASH>..<HASH> 100644
--- a/lib/plugin.js
+++ b/lib/plugin.js
@@ -1,15 +1,13 @@
-module.exports = function pluginMethod (plugin) {
-  var self = this
-
+module.exports = function pluginMethod (hoodie, options, plugin) {
   if (typeof plugin === 'function') {
-    plugin(self)
+    plugin(hoodie, options)
   }
 
   if (typeof plugin === 'object') {
     Object.keys(plugin).forEach(function (key) {
-      self[key] = plugin[key]
+      hoodie[key] = plugin[key]
     })
   }
 
-  return self
+  return hoodie
 }
feat(plugin): pass options

We now pass the options of the `Hoodie` constructor as second argument
to the `hoodie.plugin(plugin)` function

```js
hoodie.plugin(function (hoodie, options) {
  hoodie.myMethod = function () {
    // do something with options here
  }
})
```