anchor.diff:  
         //only for testing
         counter++;
  -//      if (counter < 4) return;
  +      if (counter < 4) return;
   
         //IMPORTANT: SEND CONTENT TYPE OF RETURN FIRST!!!
         response = new FcgiRecord.generateResponse(record.header.requestId,
             new FcgiStreamBody(FcgiRecordType.STDOUT, new AsciiCodec().encode("Content-type: text/html\r\n\r\n")));
   
  -      socket.add(response.toByteStream());
  +      socketAdd(socket, response);
   
         response = new FcgiRecord.generateResponse(record.header.requestId,
  -          new FcgiStreamBody(FcgiRecordType.STDOUT, new AsciiCodec().encode("Hello World!")));
  +          new FcgiStreamBody.fromString(FcgiRecordType.STDOUT, "Hello World!"));
   
  -      socket.add(response.toByteStream());
  +      socketAdd(socket, response);
   
  -//        response = new FcgiRecord.generateResponse(record.header.requestId,
  -//            new FcgiStreamBody(FcgiRecordType.DATA, new AsciiCodec().encode(
  -//                '''
  -//                <!DOCTYPE html>
  -//<html>
  -//<body>
  -//
  -//<h1>My First Heading</h1>
  -//
  -//<p>My first paragraph.</p>
  -//
  -//</body>
  -//</html>
  -//
  -//
  -//                '''
  -//            )));
  -//
  -//        socket.add(response.toByteStream());
  +      response = new FcgiRecord.generateResponse(record.header.requestId,
  +          new FcgiStreamBody.fromString(FcgiRecordType.STDOUT,
  +              '''
  +                <!DOCTYPE html>
  +<html>
  +<body>
   
  -      socket.flush().then((data) {
  -        response = new FcgiRecord.generateResponse(record.header.requestId,
  -            new FcgiEndRequestBody(0, FcgiProtocolStatus.REQUEST_COMPLETE));
  +<h1>My First Heading</h1>
   
  -        socket.add(response.toByteStream());
  +<p>My first paragraph.</p>
   
  -        counter = 0;
  -      });
  +</body>
  +</html>
  +
  +
  +                '''
  +          ));
  +
  +      socketAdd(socket, response);
  +
  +      response = new FcgiRecord.generateResponse(record.header.requestId,
  +          new FcgiEndRequestBody(1, FcgiProtocolStatus.REQUEST_COMPLETE));
  +
  +      socketAdd(socket, response);
  +
       }, onError: (data) {
         //TODO: check if stream is already closed (SocketException)
         if (data is SocketException) {
  
positive.code: 
  Logger _libLogger = new Logger("dart_fpm");
  
  main() async {
    hierarchicalLoggingEnabled = true;
    Logger.root.level = Level.ALL;
  
negative.code:       if (data is FcgiRecord)
          socket.add(data.toByteStream());
      });
    }
  }
  
  socketAdd(Socket socket, FcgiRecord record) {
    _libLogger.info(record.header.type);
  
    socket.add(record.toByteStream());
  
    if (record.header.type == FcgiRecordType.END_REQUEST) {
      counter = 0;
    }
  }