Implement chat channel factory

Signed-off-by: zml2008 <zach@zachsthings.com>