port remainder of player class to cpp