Rewrote channels.py from the ground up. Actually works this time