public void connectVLine(String fieldType, CABot3Net retNet, CABot3Net linesNet) {
    int netSize =retNet.getInputSize();
    int retinaOffset = getRetOffset(fieldType)*netSize;
    // let's move this to the off centre receptors as they work better
    retinaOffset++;
    int lineOffset = getLineOffset(fieldType, "Vline")*netSize;
    int row;
    int column;
    int cols = retNet.getCols();
    double weight=1.5;

    int retNeurIndex;
    int lineNeurIndex;


    //System.out.println("offset: "+retinaOffset);
    //We are going to add conections to "inputSize" number of neurons in the line net
    //These neurons will begin in the position determined by the lineOffset value
    //connections will come from neurons that are in the same row (retinotopically)
    for (int i = 0; i < netSize; i++){
      row = i/cols;
      column=i%cols;
      if(row>5&&row<cols-5&&column>5&&column<cols-5){//leave off the edges
        retNeurIndex=i+retinaOffset;
        lineNeurIndex=i+lineOffset;
        //System.out.println("retNeurIndex: "+retNeurIndex);
        //System.out.println("lineNeurIndex: "+lineNeurIndex);

        //add central connection
        retNet.neurons[retNeurIndex].addConnection(linesNet.neurons[lineNeurIndex], weight);

        //need to check that the connections arent "falling off" the edge of the retina;
        if(row>0){//retinal neuron is not right on the top edge of the vis field - add synapse
          retNet.neurons[retNeurIndex-cols].addConnection(linesNet.neurons[lineNeurIndex], weight);
        }

        if (row<retNet.getCols()-1){//we are not right at the bottom of the vis field
          retNet.neurons[retNeurIndex+cols].addConnection(linesNet.neurons[lineNeurIndex], weight);
        }
        if(row>6 && row<44){
          rebuildVLineEnds(lineNeurIndex, cols, linesNet);
        }
      }
    }
  }