Refactor channels to a hub struct