add type management