Actual recommendation function implemented