move zoom restricting logic to GridLayer