Making changes to Shuffle
More efficient Shuffle
Separated constraints; will rewrite more tomorrow