introduce channel types