Working on type system