Added SearchEngine module and its tests
Rewrote to define code api / interface