reworked player (near final)