Refactor Player to provide default implementations for each interface