added data interleaving