added compiled shuffle