Made it more modular and added a proper fuzzy search