refactor player class and add test cases for move method