12 bits of sweet resolution

So I took a good hard look at my code and realized some pretty important things.

First it is code for a DAC and I'm trying to achieve an ADC. (Facepalm.)
I've taken out the DATAOUT, DATAIN and SPICLOCK define in the beginning. (using SPI makes that redundant)
I've taken out the "upperDAC = transfer(goof)" out. and made the lowerDAC into dataDAC.
I am also no longer shifting it.

So after all these changes I loaded up my code and presto!!
Nothing works! now I'm no longer getting garbage, but super garbage!!

I really don't get this chip.
please help.
Here's my code for in case.

// MCP3202 2 channel ADC
// 3202 is different software-wise from 3204/3208 (which are identical)
#include <SPI.h>

#define SELPIN 10

/////////////////////////////////////////////////////////////////////////////

void setup(){
  pinMode(SELPIN, OUTPUT); 
  SPI.begin();
//  SPI.setClockDivider(16); // I don't really understand this line.
  Serial.begin(9600);
}

void loop(){
  byte i;
  int ain[2];
  
  ain[0] = read_adc(SELPIN, 2);
  ain[1] = read_adc(SELPIN, 1);

  Serial.println(ain[0]);   
  Serial.println(ain[1]); 
  
  Serial.print('\n');
  delay(500);
}

int read_adc(byte cs, byte channel)
{
  int upperADC = 0;
  int lowerADC = 0;
  int dataADC = 0;
  
//  byte commandbits = B11000000; //command bits - start, mode, chn (3), dont care (3)
  byte goof = B11000000; //command bits - start, mode, chn, MSBF 

  digitalWrite(cs, LOW); //Select adc
  SPI.transfer(goof);
  SPI.transfer(0x01); //1 is the start bit
  dataADC = SPI.transfer(0x00); //receiving the ADC value.
  //lowerADC = SPI.transfer(0x00);
  digitalWrite(cs, HIGH);

//dataADC = (upperADC<<8) + lowerADC;
return dataADC;
}