private List<Tuple<Peer, Integer>> makeScoreBoard() {
        Map<Peer, Integer> scoreTable = new java.util.HashMap<Peer, Integer>();
        for(Match match : matches) {
            if(scoreTable.get(match.participant1) == null)
                scoreTable.put(match.participant1, 0);
            if(scoreTable.get(match.participant2) == null)
                scoreTable.put(match.participant2, 0);

            Peer winner = match.getWinner();
            if(winner != null) {
                Integer oldScore = scoreTable.get(winner);
                scoreTable.put(winner, oldScore+1);
            }
        }

        List<Tuple<Peer, Integer>> sortedScoreTable = new java.util.LinkedList<Tuple<Peer, Integer>>();
        for(Entry<Peer, Integer> entry : scoreTable.entrySet()) {
            int i = 0;
            for(; i < sortedScoreTable.size() && sortedScoreTable.get(i).b > entry.getValue(); i++);
            if(i < sortedScoreTable.size())
                sortedScoreTable.add(i, new Tuple<Peer, Integer>(entry.getKey(), entry.getValue()));
            else
                sortedScoreTable.add(new Tuple<Peer, Integer>(entry.getKey(), entry.getValue()));
        }

        return sortedScoreTable;
    }