support chaining for state.add (i.e. state.new(...):add(...):add(...):run())