add recommendation sorting and improve schema