start to factor together structure generation
factor together structure generation