annotated update implementations