refactored so that channels can be set up independently from any configuration