require open struct