Seems like this is all view code.  I might call this `PlayerView` for clarity.