initial work on stateful update