code: function(parsersDefinitions) {
  
      // check that the parsersDefinitions is an object
      if(typeof parsersDefinitions !== 'object' || Array.isArray(parsersDefinitions)) {
        throw new Error('parsers should be an Object that contains arrays of functions under init and update');
      }
  
      this.parser = this.parser || getParser();
  
      this.parser.add(parsersDefinitions);
  
      return this;
    }
docs: `f1` can target many different platforms. How it does this is by using parsers which
  can target different platforms. Parsers apply calculated state objects to targets.
  
  If working with the dom for instance your state could define values which will be applied
  by the parser to the dom elements style object.
  
  When calling parsers pass in an Object that can contain variables init, and update. Both should contain
  an Array's of functions which will be used to either init or update ui.
  
  init's functions will receive: states definition, targets definition, and transitions definition.
  update functions will receive: target and state. Where target could be for instance a dom element and
  state is the currently calculated state.
  
  @param  {Object}  parsersDefinitions an Object which may define arrays of init and update functions
  @chainable