private static List<ChunkHolder> getChunks( List<Holder> list )
	{
		List<ChunkHolder> chunks = new ArrayList<ChunkHolder>();
		
		ChunkHolder currentChunk = null;
		
		int lastIndex = 0;
		
		while(lastIndex < list.size())
		{
			Holder thisHolder = list.get(lastIndex);
			if( currentChunk == null)
			{
				if(thisHolder.spearman <= INITIATION_THRESHOLD)
				{
					currentChunk = new ChunkHolder();
					chunks.add(currentChunk);
					currentChunk.firstStart = thisHolder.startPos;
					currentChunk.lastStart = thisHolder.startPos;
					currentChunk.n = 1;
					currentChunk.spearmanSum += thisHolder.spearman;
					
					int lookBack = lastIndex -1;
					
					boolean stop = false;
					while(lookBack > 0 && ! stop)
					{
						Holder previous = list.get(lookBack);
						
						if( previous.spearman <= EXTENSION_THRESHOLD && 
								! positionIsInChunk(chunks, previous.startPos))
						{
							currentChunk.firstStart = previous.startPos;
							currentChunk.n = currentChunk.n + 1;
							currentChunk.spearmanSum += thisHolder.spearman;
							lookBack--;
						}
						else
						{
							stop = true;
						}
					}
				}
			}
			else
			{
				if( thisHolder.spearman <= EXTENSION_THRESHOLD)
				{
					currentChunk.lastStart = thisHolder.startPos;
					currentChunk.n = currentChunk.n + 1;
					currentChunk.spearmanSum+= thisHolder.spearman;
				}
				else
				{
					currentChunk = null;
				}
			}
			
			lastIndex++;
		}
		
		return chunks;
	}