nit: since `new_objective` is used only as a boolean and `objective_has_changed()`'s name suggests that it returns a boolean, maybe you could make it actually return a boolean and use it directly in the `if (objective_has_changed(...)...)`... alternatively, we could call the function `get_new_objective()`... alternatively, we can leave it as it is, it's just a nit :)