Bidirectional works let's merge it to master

merging branches