updated stateful