Unidirectional and bidirectional data flow