diff --git a/lib/index.js b/lib/index.js
index <HASH>..<HASH> 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -12,6 +12,10 @@ var stampit = require('stampit');
 var _ = require('lodash');
 var EventEmitter = require('events').EventEmitter;
 
+var AssignFirstArgument = stampit({ init(opts) {
+  Object.assign(this, opts);
+}});
+
 var StateMachine = stampit({
   props: {
     // can be an object or an array
@@ -25,7 +29,7 @@ var StateMachine = stampit({
     initial: 'none',
     current: 'none'
   },
-  static: {
+  statics: {
     Promise: global.Promise || require('es6-promise').Promise,
     FsmError: FsmError,
     callbackPrefix: 'on',
@@ -397,7 +401,7 @@ var StateMachine = stampit({
       return target;
     }
   },
-  init: function init (context) {
+  init: function init (opts, context) {
     this.factory = context.stamp;
 
     var events = this.events;
@@ -419,4 +423,6 @@ var StateMachine = stampit({
   }
 });
 
+StateMachine = AssignFirstArgument.compose(StateMachine);
+
 module.exports = StateMachine;
fixed breaking changes: statics, init signature, assignment of first argument