added full-text search (very inefficient but we can optimize later).