code: public ByteBufMono aggregate() {
  		return Mono.using(alloc::compositeBuffer,
  				b -> this.reduce(b,
  				                 (prev, next) -> {
  				                     if (prev.refCnt() > 0) {
  				                         return prev.addComponent(true, next.retain());
  				                     }
  				                     else {
  				                         return prev;
  				                     }
  				                 })
  				         .filter(ByteBuf::isReadable),
  				b -> {
  				    if (b.refCnt() > 0) {
  				        b.release();
  				    }
  				})
  				.as(ByteBufMono::new);
  	}
docs: Aggregate subsequent byte buffers into a single buffer.
  
  @return {@link ByteBufMono} of aggregated {@link ByteBuf}