Add S500 shuffle
Refactor shuffler