private boolean assignCisTransOnRing(Element stereoChemistryEl) throws StructureBuildingException {
		if (stereoChemistryEl.getAttribute(LOCANT_ATR) != null) {
			return false;
		}
		Element parentSubBracketOrRoot = stereoChemistryEl.getParent();
		List<Fragment> possibleFragments = StructureBuildingMethods.findAlternativeFragments(parentSubBracketOrRoot);
		List<Element> adjacentGroupEls = OpsinTools.getDescendantElementsWithTagName(parentSubBracketOrRoot, GROUP_EL);
		for (int i = adjacentGroupEls.size()-1; i >=0; i--) {
			possibleFragments.add(adjacentGroupEls.get(i).getFrag());
		}
		for (Fragment fragment : possibleFragments) {
			if (attemptAssignmentOfCisTransRingStereoToFragment(fragment, stereoChemistryEl)){
				return true;
			}
		}

		Element possibleWordParent = parentSubBracketOrRoot.getParent();
		if (possibleWordParent.getName().equals(WORD_EL) && possibleWordParent.getChild(0).equals(parentSubBracketOrRoot)){
			//stereochemistry is in a different word to what it is applied to
			List<Element> words = OpsinTools.getNextSiblingsOfType(possibleWordParent, WORD_EL);
			for (Element word : words) {
				List<Element> possibleGroups = OpsinTools.getDescendantElementsWithTagName(word, GROUP_EL);
				for (int i = possibleGroups.size()-1; i >=0; i--) {
					if (attemptAssignmentOfCisTransRingStereoToFragment(possibleGroups.get(i).getFrag(), stereoChemistryEl)) {
						return true;
					}
				}
			}
		}
		return false;
	}