private void buildSegment(int segment, int order) {
		
		// test if any hundreds
		int i = segment / 100;
		
		if (i > 0) {
			result.append(SPACE).append(PuzzleModel.DIGITS[i-1]).append(SPACE).append(HUNDRED);
		}
		
		// anything in the range 00 - 99
		int j = segment % 100;
		if (j > 0) {
			
			// have we already output something for hundreds or we have something in the last segment
			if (i > 0 || (order == 0 && j > 0 && result.length() > 0)) {
				result.append(SPACE).append(AND);
			}
			
			if (j < 20) {
				result.append(SPACE).append(PuzzleModel.DIGITS[j-1]);
			} else {
				result.append(SPACE).append(PuzzleModel.TENS[j/10 -1]);
				
				// check for any units
				int k = j % 10;
				if (k > 0) {
					result.append(SPACE).append(PuzzleModel.DIGITS[k-1]);
				}
			}
		
			if (segment > 0) {
				result.append(SPACE).append(PuzzleModel.HUNDREDS[order]);
			}
		}		
		
	}