player functionality done