i throught also about flatten with block, but blocks still give overhead.