refactor bottom algorithm to manage _deep_upper_ (as OCM) correctly
Merge branch 'test'