Refactoring

Refactored search algorithm to improve search accuracy and speed,
refactored test organization.