Done some work on channel handling