player functionality implemented