What does it mean to “run optimize”?
Seems like it would make sense to run both at the same time.
Other than that, it might also be useful for the user when either of both operations is not good enough yet and error propagation might be worse than human correction between the two.