Improved Type system