interleaving string reimpl