func retrieveDataFromFile(fname *string) ([]byte, error) {
	file, err := os.Open(*fname)
	checkError(err)
	defer file.Close()

	csvreader := csv.NewReader(file)
	var hdrs Headers
	hdrs, err = csvreader.Read()
	checkError(err)
	ITEMIDINDEX := hdrs.getHeaderIndex("itemid")
	ITEMNAMEINDEX := hdrs.getHeaderIndex("itemname")
	ITEMVALUEINDEX := hdrs.getHeaderIndex("itemvalue")
	ITEMTYPEINDEX := hdrs.getHeaderIndex("itemType")

	ProtoMessage := new(ProtobufTest.TestMessage)
	ProtoMessage.ClientName = proto.String(CLIENT_NAME)
	ProtoMessage.ClientId = proto.Int32(CLIENT_ID)
	ProtoMessage.Description = proto.String(CLIENT_DESCRIPTION)

	//loop through the records
	for {
		record, err := csvreader.Read()
		if err != io.EOF {
			checkError(err)
		} else {

			break
		}
		//Populate items
		testMessageItem := new(ProtobufTest.TestMessage_MsgItem)
		itemid, err := strconv.Atoi(record[ITEMIDINDEX])
		checkError(err)
		testMessageItem.Id = proto.Int32(int32(itemid))
		testMessageItem.ItemName = &record[ITEMNAMEINDEX]
		itemvalue, err := strconv.Atoi(record[ITEMVALUEINDEX])
		checkError(err)
		testMessageItem.ItemValue = proto.Int32(int32(itemvalue))
		itemtype, err := strconv.Atoi(record[ITEMTYPEINDEX])
		checkError(err)
		iType := ProtobufTest.TestMessage_ItemType(itemtype)
		testMessageItem.ItemType = &iType

		ProtoMessage.Messageitems = append(ProtoMessage.Messageitems, testMessageItem)

		fmt.Println(record)
	}

	//fmt.Println(ProtoMessage.Messageitems)
	return proto.Marshal(ProtoMessage)
}