add open struct support