 template <uint32 BAND_LEN>
 struct genome_infixes
 {
-    typedef io::ReadDataDevice::const_plain_view_type       read_view_type;
+    typedef io::SequenceDataDevice<DNA_N>::const_plain_view_type       read_view_type;
 
     // constructor
     NVBIO_HOST_DEVICE

    // keep stats
    Stats stats;

    while (1)
    {
        // load a batch of reads
        SharedPointer<io::ReadData> h_read_data( read_data_file->next( batch_reads, batch_bps ) );
        if (h_read_data == NULL)
            break;

        log_info(stderr, "  loading reads... started\n");

        // copy it to the device
        const io::ReadDataDevice d_read_data( *h_read_data );

        const uint32 n_reads = d_read_data.size() / 2;


    Timer timer;
    timer.start();

    const read_view_type reads_view = reads;
    const read_string_set_type read_string_set = reads_view.sequence_string_set();
    const seed_string_set_type seed_string_set = extract_seeds(
        read_string_set,
        params.seed_len,
