refactored the code and added the ensemble recommender