added update() and delete()