player model refactor