refined code for recommenders and added basic tests.
refined code and added basic tests for recommendations
Merge branch 'finish_recommendations' into dev