diff --git a/src/LabProcesses.jl b/src/LabProcesses.jl
index 1c963b0fa1b205b7bd778c361ef7b6b97732bab8..31f15627660295d7d4d4b54fb7008565033ea8bb 100644
--- a/src/LabProcesses.jl
+++ b/src/LabProcesses.jl
@@ -1,12 +1,24 @@
 module LabProcesses
+export AbstractProcess, PhycicalProcess, SimulatedProcess, BallAndBeam, BallAndBeamSimulator, BallAndBeamType
+export  num_outputs,
+        num_inputs,
+        outputrange,
+        inputrange,
+        isstable,
+        sampletime,
+        control,
+        measure
+
+
+include("utilities.jl")
 
 # Interface specification ===================================================================
 abstract type AbstractProcess end
 abstract type PhycicalProcess  <: AbstractProcess end
 abstract type SimulatedProcess <: AbstractProcess end
 
-num_outputs(p::AbstractProcess) = p.ny
-num_inputs(p::AbstractProcess)  = p.nu
+num_outputs(p::AbstractProcess) = error("Function not implemented for $(typeof(p))")
+num_inputs(p::AbstractProcess)  = error("Function not implemented for $(typeof(p))")
 outputrange(p::AbstractProcess) = error("Function not implemented for $(typeof(p))")
 inputrange(p::AbstractProcess)  = error("Function not implemented for $(typeof(p))")
 isstable(p::AbstractProcess)    = error("Function not implemented for $(typeof(p))")
@@ -39,13 +51,12 @@ control(p::BallAndBeam, u)  = ccall((:comedi_write, comedipath),Int32,
 measure(p::BallAndBeam)     = io2num(ccall((:comedi_read,comedipath), Int32,
                                         (Int32,Int32,Int32), 0,0,0))
 
+control(p::BallAndBeamSimulator, u)  = error("Not yet implemented")
+measure(p::BallAndBeamSimulator)     = error("Not yet implemented")
+
 const comedipath = "../c/comedi_bridge.so"
 const conversion = 65535/20
 io2num(x) = x/conversion -10            # Converts from io to float
 num2io(x) = round(Int32,x*100 + 2050)   # Converts from regular number to io
 
-control(p::BallAndBeamSimulator, u)  = error("Not yet implemented")
-measure(p::BallAndBeamSimulator)     = error("Not yet implemented")
-
-
 end # module
diff --git a/src/utilities.jl b/src/utilities.jl
new file mode 100644
index 0000000000000000000000000000000000000000..86be3b8488ed97877433c2d52b430795ec582b03
--- /dev/null
+++ b/src/utilities.jl
@@ -0,0 +1,14 @@
+export periodically
+
+"""
+	@periodically(h, body)
+Ensures that the body is run with an interval of `h >= 0.001` seconds.
+"""
+macro periodically(h, body)
+	quote
+		local start_time = time()
+		$(esc(body))
+		local execution_time = time()-start_time
+		sleep(max(0,$h-execution_time))
+	end
+end