with flatten