using pooled buffer