help with collisionHandler

I have a problem here, when the sphereNode of the first fire hits the level surface and the function hitLevel is called, self.plnp.removeNode() removes all the lights (fire) added to self.fireList. I can’t figure out what is happening.

playerNode = render.attachNewNode("PLAYER")

levelTrav = CollisionTraverser()
fireHandler = CollisionHandlerEvent()
fireHandler.addInPattern('into-%in')

class fire(DirectObject.DirectObject):
    
    def __init__(self, index):
        plight = PointLight('plight%03d' % index)
        plight.setColor(Vec4(1, 1, 1, 1))
        plight.setAttenuation(Vec3(0.7, 0.5, 0))
        
        self.plnp = playerNode.attachNewNode(plight)
        self.plnp.setPos(0, -0.3, 0)
        render.setLight(self.plnp)
        
        sphere = CollisionNode('fireSphere%03d' % index)
        sphere.addSolid(CollisionSphere(0,0, 0.8, 0.2))
        sphereNode = self.plnp.attachNewNode(sphere)
        sphereNode.show()
        
        levelTrav.addCollider(sphereNode, fireHandler)
        self.accept('into-terrain', self.__hitLevel__)
    
    def __hitLevel__(self, entry):
        self.plnp.removeNode()

    def shoot(self):
        pos = self.plnp.getPos()
        self.plnp.posInterval(1.3,
(pos.getX()+10, pos.getY(), pos.getZ()), startPos=pos).start()


class player(DirectObject.DirectObject):

    def __init__(self):
        self.fireList = []

        self.accept('mouse1', self.__fire__)

    def __fire__(self):
        if len(self.fireList)<3:
            self.fireList.append(fire(len(self.fireList)))
            self.fireList[-1].shoot()

Also, if I shoot five fires my feetSegment stops detecting levelSurface and player falls eternally, I have a task that updates player Z coordinate.

        # segment that detects level surface
        feetSegment = CollisionNode('feetSegment')
        feetSegment.addSolid(CollisionSegment(0, 0, 0, 0, 0, -0.25))
        feetSegment.setIntoCollideMask(BitMask32.bit(0))
        
        feetNode = playerNode.attachNewNode(feetSegment)
        feetNode.show()
        
        colTrav.addCollider(feetNode, colHandler)
        self.accept('feetSegment-into-terrain', self.__hitTheGround__)
        self.accept('feetSegment-outof-terrain', self.__falling__)