factor out top10