full player functionality