support complex type refs