single responsibility resturcture,
refreshPlayer has all the logic for preventing too many refreshes.
 logic of rendering removed from renderPlayer