bidirectional requirements