private ArrayList<String> generateCandidateStates(State mergeableNode) {
ArrayList<String> newAllowedStates = new ArrayList<String>(states.size() + 1);
boolean addedMergeableNode = false;
for (String state : states) {
State node = taxo.getNode(state);
if (node.getParent() == mergeableNode) {
if (!addedMergeableNode) {
newAllowedStates.add(mergeableNode.name());
addedMergeableNode = true;
}
} else {