Added mutual observer

And
1) Removed redundant code
2) Refactored the 3d ribbonbar