Penso che questa discussione possa esserti utile (chiaramente riadatta nel tuo codice) prova sviluppare qualcosa (per l'avanzamento singolo cambia top 3 a top 1)
Se invece cerchi qualcosa di già pronto attendi altri consigli/soluzioni