more uniform channel handling