Added State checking
Cleaned up duplicates
Added shuffle and state check