ADD: implement bubble_soft algorithm