public ArrayList<Double> run(){
        for(int i = 0; i<connections.size(); i++){
            if(connections.get(i).getGiveNeuron()==null) System.out.println("Error 1:: NeuralNetwork 368");
            if(connections.get(i).getRecieveNeuron()==null) System.out.println("Error 2:: NeuralNetwork 369");
            if(connections.get(i).getGiveNeuron().equals(connections.get(i).getRecieveNeuron())){
                System.out.println("Recurrent connection found. Removing. :: NeuralNetwork 361");
                connections.remove(connections.get(i));
            }
        }
        ArrayList<OutputNeuron> outputNs=findOutputs();
        ArrayList<InputNeuron> inpuNs=findInputs();
        ArrayList<Double> results=new ArrayList<>();
        for(int i=0;i<inpuNs.size();i++)
            inputs.set(i,1.0); // debuging
        for(int i=0;i<outputNs.size();i++){
            outputNs.get(i).evaluate();
            results.add(outputNs.get(i).getOutput());
        }
        nextGeneration();
        return results;
    }