Implement OuterUnion