Refactor PlayerTurn history
Refactor and bug fixes
Add more test cases