new structure first pass