added arg cache for union types