add typcheck and interp
create type system