Added the beginnings of a type system