type checking
me and ben merged