modified type utils