stateful bolt abstraction added