needs smart list flatten