public boolean startScanFeaturesAt(DataSequence data, int prevPos, int pos) {
		int bitMap = 0;
		String name = "C";
		feature.strId.id=0;
        setNumBits();
		if (pos-prevPos > maxConcatLength)
		    return false;
		for (int i = 0; (i < pos-prevPos) && (i < maxConcatLength); i++) {
			if (single.startScanFeaturesAt(data,pos-i-1,pos-i) && single.hasNext()) {
				single.next(feature);
				// this could be wrong since label information is not present in single.
				//int thisId = single.offsetLabelIndependentId(feature);
                
                // 02 May '08: Replaced above with this which is correct but will not work for label tied base features..
                int thisId=feature.strId.id+1; // to distinguish from the feature not firing..
				bitMap = bitMap | (thisId << i*numBits);
				if (featureCollectMode()) {
					name = feature.strId.name + "_" + name;
					if (thisId > (1 << numBits)) {
						System.out.println("Error in max-feature-id value " + feature);
					}
					if (single.hasNext()) {
					    //						System.out.println("FeatureTypesConcat: Taking only the first feature: others to be ignored");
					}
				}
			}
		}
		//setFeatureIdentifier(bitMap,feature.strId.stateId,name,feature);
        feature.strId.id=bitMap;
        feature.strId.name=name;
		return (bitMap != 0);
	}