Re-implemented shuffling after refactor
gave classes proper ownership of own vars and added deal functionality. Still have a TODO on that.