add todo: search function