Player abstraction.