made Player an abstract class