anchor.diff:   * Returns a list of friends that have also installed the game.
    */
   void getNewMultiplayerGame(FukiyaContext context) {
  -//  int playerId = context.request.session['player_id'].toInt();
  -//  db.Persistable.load(playerId, Player).then((Player player) {
  -//    
  -//  })
  -//  .catchError((e) {
  -//    _log.warning('Problem loading player $playerId: $e');
  -//    context.response.statusCode = 404;
  -//    context.response.close();
  -//  });
     String accessToken = context.request.session["access_token"];
  -  getAllFriends(accessToken).then((people) {
  +  context.response.headers.add(HttpHeaders.CONTENT_TYPE, 'application/json');
  +  
  +  getAllFriends(accessToken).listen((people) {
       _log.fine('Found friends of current player: $people');
  -    context.response.headers.add(HttpHeaders.CONTENT_TYPE, 'application/json');
       context.response.write(JSON.stringify(people));
  -    context.response.close();
  -  })
  -  .catchError((e) {
  +  },
  +  onError: (e) {
       _log.warning('Problem finding friends: $e');
       context.response.statusCode = 500;
  +  },
  +  onDone: () {
       context.response.close();
     });
   }
  
positive.code:         _log.info('Found the player ${players.first}');
        }
      });
    });
  }
  
  
negative.code:   return stateToken;
  }
  
  Stream<List<Person>> getAllFriends(String accessToken) {
    
    StreamController stream = new StreamController();
    
    Future consumePeople([String nextToken]) {
      return getPageOfFriends(accessToken, nextPageToken: nextToken)
        .then((PeopleFeed feed) {
          stream.add(feed.items);
          if (feed.nextPageToken != null) {
            return consumePeople(feed.nextPageToken);
          }
        });
    }
    
    consumePeople()
        .catchError((e) {
          stream.addError(e);
        })
        .whenComplete(() {
          stream.close();
        });
    
    return stream.stream;
  }
  
  Future<PeopleFeed> getPageOfFriends(String accessToken,
  