public Set<Pair> getHBonds() { // positions that are bonded together
		//TODO: find ideal way
		Set<Pair> hBonds = new HashSet<Pair>();
		Set<Integer> usedPoints = new HashSet<Integer>();
		int i = 0;
		for(Iterator<Point> iter = this.iterator(); iter.hasNext();) {
			Point p = iter.next();
			RNABasePair pair = this.getPair(i++);
			int j = i; // intentionally one more
			for(Point p2: iterable(iter)) {
				RNABasePair pair2 = this.getPair(j++);
				//System.out.printf("%d,%d:%s%s\n",i-1,j-1,pair,pair2);
				if(		j - i > 2 &&
						pair.bondsWith(pair2) &&
						!usedPoints.contains(i-1) &&
						!usedPoints.contains(j-1) &&
						p.isAdjacent(p2)){
					hBonds.add(new Pair(i-1,j-1));
					usedPoints.add(i-1);
					usedPoints.add(j-1);
				}
			}
		}
		return hBonds;
	}