     
     cudaFree(mDev_ComputedSignaturesPerInstance);
     cudaFree(dev_SignaturesBlockSize);
-    // std::cout << "Size signatures kernel: " << signatures->size() << std::endl;
-    // for (auto it = signatures->begin(); it != signatures->end(); ++it) {
-    //     std::cout << (*it)->size() << "," << std::endl;
-    //     // for (auto it2 = (*it)->begin(); it2 != (*it)->end(); ++it2) {
-    //     //     std::cout << *it2 << ", ";
-    //     // }
-    //     // std::cout << std::endl;
-    // }
-    // return signatures;
 }
 
 void InverseIndexCuda::computeHitsOnGpu(std::vector<vvsize_t_p*>* pHitsPerInstance, 

        pRawData->getMaxNnz(),
                mDev_ComputedSignaturesPerInstance, 
                end, start, mBlockSize, mShingleSize, dev_SignaturesBlockSize);
                
        cudaMemcpy(instancesHashValues, mDev_ComputedSignaturesPerInstance, 
                    pRawData->getNumberOfInstances()/iterations * signaturesSize * sizeof(size_t),
                    cudaMemcpyDeviceToHost);
        for(size_t i = 0; i < pRawData->getNumberOfInstances() / iterations; ++i) {
            vsize_t* instance = new vsize_t(signaturesSize);
            for (size_t j = 0; j < signaturesSize; ++j) {

            pRawData->getNumberOfInstances() / iterations  * signaturesSize * sizeof(size_t));
    size_t* dev_SignaturesBlockSize;
    cudaMalloc((void **) &dev_SignaturesBlockSize,
           pNumberOfBlocks * mNumberOfHashFunctions * pBlockSizeShingle * sizeof(size_t));
    // compute the signatures on the gpu
    // do it in n iterations with equal sized chunks 
    // if the data would not fit on the ram of the gpu
    for (size_t i = 0; i < iterations; ++i) {
        // execute kernel on gpu
        fitCuda<<<pNumberOfBlocks, pNumberOfThreads>>>
        (mDev_FeatureList, 
        mDev_SizeOfInstanceList,  
