re-organized imm.Type