Cocoa abstraction
more flexible buffer size