shuffle operations and constraints