bidirectional analysis