implemented "update", "before", and "after"