ipc: pipe implementation