diff --git a/src/building_blocks.jl b/src/building_blocks.jl
index 7434ec68686c83b07bdd78815a55da4657ebd627..0e069e8663a78a5399da9c3103a9df5502a593ce 100644
--- a/src/building_blocks.jl
+++ b/src/building_blocks.jl
@@ -1,7 +1,7 @@
 module BuildingBlocks
 import JuMP: value, Model, @constraint, @objective, objective_function, AbstractJuMPScalar
 import Printf: @sprintf
-import ..Variables: Variables, variables, start_time, duration, end_time, gradient_strength, slew_rate, effective_time, VariableType, alternative_variables
+import ..Variables: Variables, variables, start_time, duration, end_time, gradient_strength, slew_rate, effective_time, VariableType, alternative_variables, qval_square
 import ..BuildSequences: global_model, global_scanner, fixed
 import ..Scanners: Scanner
 
@@ -122,6 +122,9 @@ end
 
 
 for variable_func in keys(variables)
+    if variable_func in [:qval_square, :qval]
+        continue
+    end
     @eval function Variables.$variable_func(bb::BuildingBlock)
         if Variables.$variable_func in keys(alternative_variables)
             alt_var, forward, backward, _ = alternative_variables[Variables.$variable_func]
@@ -144,6 +147,13 @@ for variable_func in keys(variables)
     end
 end
 
+function Variables.qval_square(bb::BuildingBlock, args...; kwargs...)
+    vec = Variables.qvec(bb, args...; kwargs...)
+    return vec[1]^2 + vec[2]^2 + vec[3]^2
+end
+
+Variables.qval(bb::BuildingBlock, args...; kwargs...) = sqrt(Variables.qval_square(bb, args...; kwargs...))
+
 
 struct BuildingBlockPrinter{T<:BuildingBlock}
     bb::T
diff --git a/src/variables.jl b/src/variables.jl
index b423a7612693837ae398c6ec7802e377a00d8072..c1d971c55c12470869e13688b4f59dd1f7ac9d35 100644
--- a/src/variables.jl
+++ b/src/variables.jl
@@ -65,12 +65,6 @@ for (block_symbol, all_functions) in all_variables_symbols
 end
 
 
-# helper functions
-function qval_square(bb, args...; kwargs...)
-    vec = qvec(bb, args...; kwargs...)
-    return vec[1]^2 + vec[2]^2 + vec[3]^2
-end
-
 alternative_variables = Dict(
     qval => (qval_square, n->n^2, sqrt, false),
     slice_thickness => (inverse_slice_thickness, inv, inv, true),