Changing pool() method signiture
Extracting BufferFactory interface