refactor to prepare supporting per channel configs
complete per channel user support