now support dynamic partitioning