Setup dio to use comm layer, refactor tests.

Tests are currently failing.
Add Communication layer.