refactored PointerGrid