Fix shuffle
Shuffle with constraints
Improved model/view seperation
Merge branch 'shuffle-constraints'