explicitly requiring open struct