three types of updates + inserting