diff --git a/src/variables.jl b/src/variables.jl
index 8242893b857d222eccb4cd4eb24df8e19630c760..bc6422ad40a180823578e7b3fa35e2718011349a 100644
--- a/src/variables.jl
+++ b/src/variables.jl
@@ -112,24 +112,24 @@ const VariableType = Union{Number, AbstractJuMPScalar}
 
 
 """
-    get_free_variable(value; integer=false)
+    get_free_variable(value; integer=false, start=0.01)
 
 Get a representation of a given `variable` given a user-defined constraint.
 
 The result is guaranteed to be a [`VariableType`](@ref).
 """
-get_free_variable(value::Number; integer=false) = integer ? Int(value) : Float64(value)
-get_free_variable(value::VariableType; integer=false) = value
-get_free_variable(::Nothing; integer=false) = @variable(global_model(), start=0.01, integer=integer)
-get_free_variable(value::Symbol; integer=false) = integer ? error("Cannot maximise or minimise an integer variable") : get_free_variable(Val(value))
-function get_free_variable(::Val{:min})
-    var = get_free_variable(nothing)
+get_free_variable(value::Number; integer=false, kwargs...) = integer ? Int(value) : Float64(value)
+get_free_variable(value::VariableType; kwargs...) = value
+get_free_variable(::Nothing; integer=false, start=0.01) = @variable(global_model(), start=start, integer=integer)
+get_free_variable(value::Symbol; kwargs...) = integer ? error("Cannot maximise or minimise an integer variable") : get_free_variable(Val(value); kwargs...)
+function get_free_variable(::Val{:min}; kwargs...)
+    var = get_free_variable(nothing; kwargs...)
     model = global_model()
     @objective model Min objective_function(model) + var
     return var
 end
-function get_free_variable(::Val{:max})
-    var = get_free_variable(nothing)
+function get_free_variable(::Val{:max}; kwargs...)
+    var = get_free_variable(nothing; kwargs...)
     model = global_model()
     @objective model Min objective_function(model) - var
     return var