Add the beginnigs of the type system
Expand type system