refactoring last fm service