bidirection updated