added iterative assembly