update() added and more efficient search()