working on bidirectional in asg3