work on channel extensibility: add default channel generator