 			sort_huffman_tree(i, distinctCharacterCount, combinedHuffmanNodes, huffmanTreeNode);
 			build_huffman_tree(i, distinctCharacterCount, combinedHuffmanNodes, huffmanTreeNode, &head_huffmanTreeNode);
 		}
-	
 		if(distinctCharacterCount == 1){
 			head_huffmanTreeNode = &huffmanTreeNode[0];
 		}

		unsigned char bitSequence[255], bitSequenceLength = 0;
		build_huffman_dictionary(head_huffmanTreeNode, bitSequence, bitSequenceLength, &huffmanDictionary[currentBlockIndex]);
		create_data_offset_array((inputBlockPointer - inputFileData - inputBlockLength), compressedDataOffset, inputBlockData, inputBlockLength, &huffmanDictionary[currentBlockIndex], integerOverFlowIndex, &numIntegerOverflows);
		inputBlocksIndex[currentBlockIndex + 1] = compressedDataOffset[inputBlockPointer - inputFileData + 1];
		// may need to add +1 above on rhs
		currentBlockIndex++;
	}

	unsigned int compressedFileLength = compressedDataOffset[inputFileLength] / 8;
	for(unsigned int i = 0; i < numIntegerOverflows; i++){
		compressedFileLength += (compressedDataOffset[integerOverFlowIndex[i]] / 8);

		printf("With Overflow!!\n");
		unsigned char *d_byteCompressedData_overflow;

		error = cudaMalloc((void **)&d_byteCompressedData, (compressedDataOffset[integerOverFlowIndex[0]]) * sizeof(unsigned char));
		if (error!= cudaSuccess)
			printf("erro_byte_compressed: %s\n", cudaGetErrorString(error));
		error = cudaMemset(d_byteCompressedData, 0, compressedDataOffset[integerOverFlowIndex[0]] * sizeof(unsigned char));
		if (error!= cudaSuccess)
			printf("erro_memset: %s\n", cudaGetErrorString(error));

		error = cudaMalloc((void **)&d_byteCompressedData_overflow, (compressedDataOffset[inputFileLength]) * sizeof(unsigned char));
		if (error!= cudaSuccess)
			printf("erro_byte_compressed: %s\n", cudaGetErrorString(error));
		error = cudaMemset(d_byteCompressedData_overflow, 0, compressedDataOffset[inputFileLength] * sizeof(unsigned char));
		if (error!= cudaSuccess)
			printf("erro_memset: %s\n", cudaGetErrorString(error));

