update: add search function