Flexible, stream-based abstraction for launching processes in Cocoa