private void mergePhrasemes(List<Homonym> result, List<List<Phraseme>> phrasemes) {
        for (Homonym homonym : result) {
            //System.out.println(homonym.getOrig());
            for (List<Phraseme> phs: phrasemes) {
                if (phs != null) {
                    if (homonym.getOrig().equals(phs.get(0).getOrig())) { //1st contains the homonym itself
                        for (int i = 1; i<phs.size(); i++) {
                            Phraseme ph = phs.get(i);

                            ph.setType(VariantHelper.getPhrasemeType(ph.getOrig()));
                            ph.setOrig(StringHelper.removeExpr(ph.getOrig()));  //remove expr. semi-/fix. from orig

                            if (ph.getOrig().matches("^[IV]+[a-j]{1}\\s.*$")) { //is expression
                                String mloc = ph.getOrig().substring(0, ph.getOrig().indexOf(" ")).trim();
                                //System.out.println("XXX mergePhrasemes for: " + homonym.getOrig() + " with: " + ph.getOrig() + " at loc: " + mloc);
                                if (getWTIndex(mloc) < homonym.getWords().size()
                                        && getMnngIndex(mloc) < homonym.getWords().get(getWTIndex(mloc)).getMeanings().size()) {
                                    ph.setOrig(StringUtils.removeStart(ph.getOrig(), mloc).trim());
                                    homonym.getWords().get(getWTIndex(mloc)).getMeanings().get(getMnngIndex(mloc)).addExpression(ph);
                                }
                            } else {
                                homonym.addIdiom(ph);
                            }
                        }
                    }
                }
            }
        }
    }