better channel management

this might break. i did not test it.