work on channel protocol