factored out dstType