moved special type check to Utils