private final void split() {
			if (isLeaf()) {
				int hw = mWidth / 2;
				int hh = mHeight / 2;
				mNorthWest = new Node<>(mX, mY, hw, hh, mMaxCapacity);
				mNorthEast = new Node<>(mX + hw, mY, mWidth - hw, hh, mMaxCapacity);
				mSouthWest = new Node<>(mX, mY + hh, hw, mHeight - hh, mMaxCapacity);
				mSouthEast = new Node<>(mX + hw, mY + hh, mWidth - hw, mHeight - hh, mMaxCapacity);
				Set<T> temp = mContents;
				mContents = new HashSet<>();
				for (T one : temp) {
					add(one);
				}
			}
		}