Rework player lifecycle