removed afterUpdate runnable because it was actually not used: all arguments passed were empty runnables