diff --git a/core/MarkovProcesses.jl b/core/MarkovProcesses.jl
index e1f47fea94f4bc535978564b820ba4be79d6e39c..eec79d03650ad8209f3d18f9f88901bb9692d71c 100644
--- a/core/MarkovProcesses.jl
+++ b/core/MarkovProcesses.jl
@@ -4,6 +4,7 @@ import Base: +, -, getfield, getindex
 
 export Model, ContinuousTimeModel, DiscreteTimeModel
 export simulate, set_param!, get_param
+export load_model
 include("model.jl")
 
 export Observations, AbstractTrajectory
diff --git a/core/model.jl b/core/model.jl
index 4c093a8e6a86923c76add5c46ed9d94e863b7b8b..8e8fa2eb5852cb662c4e1a171c0555a0186c0432 100644
--- a/core/model.jl
+++ b/core/model.jl
@@ -8,3 +8,7 @@ function simulate(m::Model, n::Int; bound::Real = Inf)::AbstractObservations end
 function set_param!(m::Model, p::AbstractVector{Real})::Nothing end
 function get_param(m::Model)::AbstractVector{Real} end
 
+function load_model(name_model::String)
+    include(pathof(@__MODULE__) * "/../../models/" * name_model * ".jl")
+end
+
diff --git a/tests/models/sir.jl b/models/sir.jl
similarity index 95%
rename from tests/models/sir.jl
rename to models/sir.jl
index c4db3e0345ed961c5df5ebb3747056b6070eb2bc..9f960757f430a30baf0a43d57c712c49ae5f42c4 100644
--- a/tests/models/sir.jl
+++ b/models/sir.jl
@@ -48,5 +48,5 @@ g = SVector(1)
 
 # Gamma should be constructed automatically in the case of 
 
-#m = Model(d,dobs,k,dict,l_name,param,p,x0,f,g)
+#SIR = Model(d,dobs,k,dict,l_name,param,p,x0,f,g)
 
diff --git a/tests/run_unit.jl b/tests/run_unit.jl
new file mode 100644
index 0000000000000000000000000000000000000000..ac173f135ed083dc2ddefa1e624bf5cc519ddc5c
--- /dev/null
+++ b/tests/run_unit.jl
@@ -0,0 +1,8 @@
+
+using Test
+
+@testset "Unit tests" begin
+    @test include("unit/load_model.jl")
+    @test include("unit/load_module.jl")
+end
+
diff --git a/tests/sim_sir.jl b/tests/simulation/sim_sir.jl
similarity index 85%
rename from tests/sim_sir.jl
rename to tests/simulation/sim_sir.jl
index 2feb9003229886f4e3ff4271f9232a1a6d1dfd1f..9601a670c94b606a72b739ce969030eb863935b6 100644
--- a/tests/sim_sir.jl
+++ b/tests/simulation/sim_sir.jl
@@ -2,7 +2,7 @@
 using MarkovProcesses 
 using PyPlot
 
-include("models/sir.jl")
+load_model("sir")
 
 σ = simulate(SIR)
 plt.figure()
diff --git a/tests/unit/load_model.jl b/tests/unit/load_model.jl
new file mode 100644
index 0000000000000000000000000000000000000000..7f30085eab28ff5de321c3f5e366ad12aff62377
--- /dev/null
+++ b/tests/unit/load_model.jl
@@ -0,0 +1,6 @@
+
+using MarkovProcesses
+load_model("sir")
+
+return true
+
diff --git a/tests/unit/load_module.jl b/tests/unit/load_module.jl
new file mode 100644
index 0000000000000000000000000000000000000000..5737e8a119df98eda0d7dd111b9e44ecb356418a
--- /dev/null
+++ b/tests/unit/load_module.jl
@@ -0,0 +1,5 @@
+
+using MarkovProcesses
+
+return true
+