returns diff type