fully functional index update() functions