adding initial data channel support. For #32. There's still more work to be done to layer helpers on top of it.