diff --git a/src/SystemIdentification.jl b/src/SystemIdentification.jl
index 4aeb5c3eeda60056cf1ea7953b15c8594d4df48d..6282c6e0afd2a88e6b8c05bd7b8c92c5483d818a 100644
--- a/src/SystemIdentification.jl
+++ b/src/SystemIdentification.jl
@@ -1,8 +1,9 @@
 module SystemIdentification
 if !isdefined(:DEBUG); DEBUG = false; end
 export
-Model,
+Model,LinearModel,NonLinearModel,
 Network,
+Polynom,PolynomMatrix,
 AR,
 ARX,
 RBFARX,
@@ -21,6 +22,9 @@ abstract Model
 abstract LinearModel <: Model
 abstract NonLinearModel <: Model
 abstract Network <: NonLinearModel
+typealias Polynom Union(Real, Array{Real,1})
+typealias PolynomMatrix Union(Array{Polynom,1},Polynom)
+
 
 """
 `a::Vector{Float64}`: The polynomial coeffs A(z) (not including the first 1)\n
@@ -29,7 +33,7 @@ abstract Network <: NonLinearModel
 `λ::Float64`\n
 """
 type AR <: Model
-    a::Vector{Float64}
+    a::Polynom
     na::Int
     bias::Bool
     λ::Float64
@@ -44,8 +48,8 @@ end
 `λ::Float64`\n
 """
 type ARX <: Model
-    a::Vector{Float64}
-    b::VecOrMat{Float64}
+    a::Polynom
+    b::PolynomMatrix
     na::Int
     nb::Vector{Int}
     bias::Bool
@@ -71,6 +75,7 @@ type FitResult
     error::VecOrMat{Float64}
     fit::FitStatistics
     method::Symbol
+    FitResult(error::VecOrMat{Float64},method::Symbol) = new(error, FitStatistics(error),method)
 end
 
 type IdData