Merge "Groundwork to support bidirectional, asynchronous communication"