added best_in_place 4