implement search across columns; improve error handling