diff --git a/src/build_sequences.jl b/src/build_sequences.jl
index f6dc6a0e801218382291dc974787b1ce2b19fc7e..6a4b1f6b8a09ae8ace3e70f8866ff92e084ff3af 100644
--- a/src/build_sequences.jl
+++ b/src/build_sequences.jl
@@ -76,12 +76,11 @@ function build_sequence(f::Function, scanner::Union{Nothing, Scanner}, model::Tu
             if !iszero(num_variables(jump_model))
                 optimise_with_cost_func!(jump_model, total_cost_func(), n_attempts)
                 prev_cost_func = nothing
-                prev_opt_value = nothing
                 for cost_func in iterate_cost()
                     if !isnothing(prev_cost_func)
-                        @constraint jump_model prev_cost_func <= prev_opt_value
+                        @constraint jump_model prev_cost_func <= value(prev_cost_func)
                     end
-                    prev_opt_value = optimise_with_cost_func!(jump_model, cost_func, n_attempts)
+                    optimise_with_cost_func!(jump_model, cost_func, n_attempts)
                     prev_cost_func = cost_func
                 end
             end
@@ -152,7 +151,6 @@ function optimise_with_cost_func!(jump_model::Model, cost_func, n_attempts)
         error("Optimisation failed to converge. The following errors were raised: $err_string. Example errors for each type are printed above.")
     end
     backend(jump_model).optimizer.model.inner.x .= min_values
-    return min_objective
 end
 
 function build_sequence(f::Function, scanner::Union{Nothing, Scanner}=Default_Scanner; optimise=true, n_attempts=20, print_level=0, mu_strategy="adaptive", max_iter=1000, kwargs...)