fixes to player logic