more nonscalar complex type work