anchor.diff:      );
     }
   
  -  Stream<CurrentSongState> get _mediaStateStream => Rx.combineLatest2<MediaItem, Duration, CurrentSongState>(
  -      AudioService.currentMediaItemStream,
  -      AudioService.positionStream,
  -      (mediaItem, position) => CurrentSongState(mediaItem.toSong(), position));
  -
     @override
     Widget build(BuildContext context) {
  -    return StreamBuilder<CurrentSongState>(
  -        stream: _mediaStateStream,
  +    return StreamBuilder<MediaItem>(
  +        stream: AudioService.currentMediaItemStream,
           builder: (context, snapshot) {
             if (!snapshot.hasData) {
               return Container(); // TODO animate the whole thing out when no data
             }
  -          final state = snapshot.data;
  +          final theme = Theme.of(context);
  +          final backgroundColor = theme.colorScheme.surface;
  +          final foregroundColor = theme.colorScheme.onSurface;
  +          final song = snapshot.data.toSong();
             return SizedBox(
                 height: 64,
                 child: Material(
  +                elevation: 8,
                   child: Container(
  -                  color: Theme.of(context).backgroundColor, // TODO ugly
  +                  color: backgroundColor,
                     child: Row(
                       children: [
                         Padding(
  -                        padding: const EdgeInsets.all(8.0),
  -                        child: ListThumbnail(state.song.artwork),
  +                        padding: const EdgeInsets.fromLTRB(16, 8, 16, 8),
  +                        child: ListThumbnail(song.artwork),
                         ),
                         Expanded(
                           child: Column(
  
positive.code:                           return Row(
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: [
                                if (playing) pauseButton() else playButton(),
                                nextButton(), // TODO grey out when cannot skip next
                              ],
                            );
                          },
  
negative.code:                           mainAxisAlignment: MainAxisAlignment.center,
                            children: [
                              Text(
                                song.title,
                                style: theme.textTheme.subtitle2.copyWith(color: foregroundColor),
                                overflow: TextOverflow.ellipsis,
                                maxLines: 1,
                              ),
                              Text(
                                song.artist,
                                style: theme.textTheme.caption.copyWith(color: foregroundColor.withOpacity(0.75)),
                                overflow: TextOverflow.ellipsis,
                                maxLines: 1,
                              ),
  