fix #2: Bi-directional sync