Abstract Player interface