anchor.diff:      } while (hasNextPage);
     }
   
  +  get commentStream async* {
  +    var after = 'null';
  +    bool hasNextPage;
  +    do {
  +      var query = _commentQuery
  +          .replaceAll(r'${ownerId}', _id)
  +          .replaceAll(r'${after}', after);
  +      final options = QueryOptions(document: query);
  +      final page = await _client.query(options);
  +
  +      PageInfo pageInfo =
  +          PageInfo.fromGraphQL(page.data['node']['comments']['pageInfo']);
  +      hasNextPage = pageInfo.hasNextPage;
  +      after = '"${pageInfo.endCursor}"';
  +
  +      // Parse the responses into a buffer
  +      var bufferReactions = List<Reaction>();
  +      var bufferIndex = 0;
  +      for (var jsonSub in page.data['node']['comments']['nodes']) {
  +        bufferReactions.add(Reaction.fromGraphQL(jsonSub));
  +      }
  +
  +      // Yield each item in our buffer
  +      if (bufferReactions.length > 0)
  +        do {
  +          yield bufferReactions[bufferIndex++];
  +        } while (bufferIndex < bufferReactions.length);
  +    } while (hasNextPage);
  +  }
  +
     Issue(
         this._title,
         this._id,
  
positive.code:   get body => _body;
    String _id;
    get id => _id;
    String _ownerId;
    get ownerId => _ownerId;
    get reactionStream async* {
      var after = 'null';
      bool hasNextPage;
      do {
        var query = _commentQuery
            .replaceAll(r'${ownerId}', ownerId)
            .replaceAll(r'${after}', after);
        final options = QueryOptions(document: query);
        final page = await _client.query(options);
  
        PageInfo pageInfo =
            PageInfo.fromGraphQL(page.data['node']['comments']['pageInfo']);
        hasNextPage = pageInfo.hasNextPage;
        after = '"${pageInfo.endCursor}"';
  
        // Parse the responses into a buffer
        var bufferReactions = List<Reaction>();
        var bufferIndex = 0;
        for (var jsonSub in page.data['node']['comments']['nodes']) {
          bufferReactions.add(Reaction.fromGraphQL(jsonSub));
        }
  
        // Yield each item in our buffer
        if (bufferReactions.length > 0)
          do {
            yield bufferReactions[bufferIndex++];
          } while (bufferIndex < bufferReactions.length);
      } while (hasNextPage);
    }
  
    Comment(this._author, this._createdAt, this._body);
    static Comment fromGraphQL(dynamic node) {
  
negative.code:         },
        }
  ''';
  
  // sample ID  "MDU6SXNzdWUyOTM3NTMyODE="
    final _commentQuery = r'''
  query { 
  		node(id:"${ownerId}") {
      	... on Issue {
  			id,
        comments(last: 100, after: ${after} ) {
          totalCount,
          pageInfo {
            hasNextPage,
            endCursor,
          },
          nodes {
            body,
            author { url, login},
            reactions(last: 100, after: null) {
              totalCount,
              nodes{
                content
              }
            }
          }
        }
      }
      ... on PullRequest {
  			id,
        comments(last: 100, after: ${after} ) {
          totalCount,
          pageInfo {
            hasNextPage,
            endCursor,
          },
          nodes {
            body,
            author { url, login},
            reactions(last: 100, after: null) {
              totalCount,
              nodes{
                content
              }
            }
          }
        }
      }
    }
    ''';
  }
  
  class PullRequest {
  