go crazy with types