reorganized things.  made channels interleave instead of planar.  wrapped all IO in shared_ptr.  added a test that isn't completely passing at the moment.