started using new type system