Major updates to channel modifier

Thanks to Andrew Helmer for the implementation guidance and extensive
debugging work, the channel modifier is now working!