1. refactored existing code in specs and lib files
2. added specs and code to reverse order of play