added recommendation framework