implemented firing