class HarmonicLoopAltWeighter {

    public boolean setHarmonicLoopAltWeight(Integer indexToWeight, ProgressionUnit currentProgressionUnit, ProgressionUnit priorProgressionUnit, Iterable<AnalyticsHorizontal> analyticsHorizontals) {

        Application.logger.debug("LOG: HARMONIC SETWEIGHT");

        //TODO WRITE TEST
        CurrentPriorBar bars = WeightHelper.createCurrentPriorBar(indexToWeight, currentProgressionUnit, priorProgressionUnit);

        Collection<HarmonicLoopWeightTask> collection = new ArrayList<>();

        bars.getCurrentBar().getHarmonicLoopAltOptions().forEach(optionToWeight -> {

            HarmonicLoopWeightTask loop = new HarmonicLoopWeightTask(optionToWeight, bars,
                    harmonicVerticalClassifier,
                    rhythmWeighter,
                    harmonicLoopTimeseriesClassifier,
                    harmonicAltThemeWeighter
            );
            collection.add(loop);
        });

        //TODO DO THE WEIGHTS EVEN GET SET???  RETURNS BOOL ...
        //TODO DO THE WEIGHTS EVEN GET SET???  RETURNS BOOL ...
        //TODO DO THE WEIGHTS EVEN GET SET???  RETURNS BOOL ...
        //TODO DO THE WEIGHTS EVEN GET SET???  RETURNS BOOL ...
        //TODO DO THE WEIGHTS EVEN GET SET???  RETURNS BOOL ...
        //TODO DO THE WEIGHTS EVEN GET SET???  RETURNS BOOL ...
        //TODO DO THE WEIGHTS EVEN GET SET???  RETURNS BOOL ...

        try {
            for (HarmonicLoopWeightTask task : collection) {
                Application.logger.debug("LOG: Harmonic Alt weight status : " + task.call());
            }
        } catch (Exception e) {
            Application.logger.debug("LOG:", e);
        }

        return true;
    }

}