parameterize for bidirectional communication