private void subcategorizePredicates(List<SyntaxTreeNodeLeaf> result, DependencyParse dependencyParse,
      String preposition, SyntaxTreeNodeLeaf np, Category prepositionCategory)
  {
    for (Dependency dependencyToArgumentNP : dependencyParse.getPredicates(np)) {
      SyntaxTreeNodeLeaf predicate = dependencyToArgumentNP.getParent();
      int argToReplace = dependencyToArgumentNP.getArgNumber();

      if (predicate.getCategory().isFunctionInto(Category.valueOf("(N/PP)\\(N/PP)")) && dependencyToArgumentNP.getArgNumber() < 3) {
        int y=0;
        y++;
        for (Dependency dependencyToArgumentNoun : dependencyParse.getArguments(predicate, 2)) {
          updatePredicateCategory(result, preposition, prepositionCategory, dependencyToArgumentNoun.getChild(), 1);
        }
      } else if (predicate.getCategory().isFunctionInto(Category.valueOf("(PP/PP)/NP"))) {

        for (Dependency actualPredicate : dependencyParse.getPredicates(predicate)) {

          updatePredicateCategory(result, preposition, prepositionCategory, actualPredicate.getParent(), actualPredicate.getArgNumber());

        }
      } else if (Category.valueOf("PP|PP").matches(predicate.getCategory())) {

        
      } else if (predicate.getCategory().isModifier() && prepositionCategory.equals(predicate.getCategory().getArgument(argToReplace))) {
        int y=0;
        y++;
      } else {
        updatePredicateCategory(result, preposition, prepositionCategory, predicate, argToReplace);
      }
      
    }
  }