First, but twisted, implementation for update()