buffer channels for better gc semantics