Updated Factory structure