class SetKeyEvent implements IEventChain {

    @Override
    public QueueState set(QueueState queueState) {

        for (ProgressionUnit pUnit : queueState.getStructure()) {
            List<String> unitChords = new ArrayList<>();

            for(ProgressionUnitBar pBar : pUnit.getProgressionUnitBars()) {
                    unitChords.add(pBar.getChord().getRawChordName());
            }

            String key = keyExtractor.extract(unitChords);
            pUnit.setKey(key);
        }

        return queueState;
    }

    public  SetKeyEvent();

}