Great Improvement

Dynamically decide grid size, dynamically determine the way to split
grids