Added bidirectional option