1) Added support for user-based collaborative filtering. 2) Created a new model object SongScore that would contain the weights assigned to each recommended song by algorithms. 3) Finding Top N pattern was re-occuring, so extracted that in AlgoUtils class for better re-use.
Merged the conflicting changes