refactor to shuffle utility