class ChordSelector implements IChordSelector {

    public HiveChord selectChordBetweenChords(HiveChord chordOne, HiveChord chordTwo, List<HiveChord> hiveChordInDatabase) {

        List<HiveChord> candidates = getChordCandidatesBetweenChords(chordOne, chordTwo, hiveChordInDatabase);

        if (candidates == null || candidates.size() == 0) {
            return null;
        }

        // TODO handle a better solution ....
        // TODO just match one way ..
        // if there is no matches resort to
        if (candidates.size() == 0) {
            // TODO GARBAGE >> PLEASE REVIST ..
            // TODO CANNOT FIND A CHORD .. CONSIDER RANDOM OR SOMETHING ..
            candidates.add(chordOne);
        }


        int max = candidates.size();
        int randomIndex = new Random().nextInt(max);

        return candidates.get(randomIndex);
    }

}