adapt to channels