maxizimize should occur outside of convergence check