suppose another module is using MonitorBasedSaveBest.best_cost, you would expect it to be the real cost, not ```real_cost * -1``` if ```higher_is_better==True```. I think it would be better to make a private method for testing ```new_cost < self.best_cost``` relative to ```higher_is_better```.