basic implementation of channels for IPC