add memory channel, refactor channel tests