recomendation backend implementation