channel: use separate file