diff --git a/CommonFunctions.R b/CommonFunctions.R
index 778a8b74216dd12922fe4152a0ba2b758ac857a8..fe8b45521104d6ba7876ca9007ff82ff080010f4 100644
--- a/CommonFunctions.R
+++ b/CommonFunctions.R
@@ -1,11 +1,11 @@
 require(data.table)
 require(reshape2)
 
-data_dir_root = "C:\\Users\\rhenry2\\Desktop\\PLUM_orig_data"
+data_dir_root = "~/Documents/LURG/Data"
 fao_data_dir = file.path(data_dir_root, "FAOStat-April2019")
 
 getItemDetails = function() {
-	itemDetails = fread("C:\\Users\\rhenry2\\workspace\\R scripts\\landalloc\\itemsInputs.csv")
+	itemDetails = fread("~/Documents/R_Workspace/landalloc/itemsInputs.csv")
 	itemDetails[, allowedForVeggie:=TRUE]
 	itemDetails[animal == TRUE & !Item %in% c("Eggs", "Milk - Excluding Butter"), allowedForVeggie:=FALSE]
 	itemDetails
@@ -26,7 +26,7 @@ getFeedConvRatio  = function(generateRandom=FALSE, lowerB=-0.2, upperB=0.2) {
 }
 
 getCountryCodes = function(includeWorld=TRUE) {
-	dt = fread("C:\\Users\\rhenry2\\workspace\\PLUM_src\\plumv2\\plumv2\\data\\country_codes4.csv", header=TRUE)[, list(Country, CountryCode, Region, IncomeGroup)]
+	dt = fread("~/Documents/R_Workspace/UNPLUM/data/country_codes4.csv", header=TRUE)[, list(Country, CountryCode, Region, IncomeGroup)]
 	if (includeWorld == TRUE) dt = rbind(dt, data.table(Country = "World", CountryCode = "WLD", Region = "World", IncomeGroup="variable"))
 	dt
 }
diff --git a/PLUM/SetupData/PreparePLUMData.R b/PLUM/SetupData/PreparePLUMData.R
index a6dda678bdd47c1b8f5709bb24df9a9107bb0e7e..4652c3953ca7157631cb0dbbc83819cf4bf5528b 100644
--- a/PLUM/SetupData/PreparePLUMData.R
+++ b/PLUM/SetupData/PreparePLUMData.R
@@ -1,7 +1,7 @@
 require(raster)
 #write files for java model
-output_dir_root = "C:\\Users\\rhenry2\\workspace\\PLUM_src\\plumv2\\plumv2"
-#output_dir_root = "/Users/peteralexander/Documents/R_Workspace/UNPLUM"
+#output_dir_root = "C:\\Users\\rhenry2\\workspace\\PLUM_src\\plumv2\\plumv2"
+output_dir_root = "/Users/peteralexander/Documents/R_Workspace/UNPLUM"
 
 # Stock levels
 calculateStockLevels <- function(stockvar){
@@ -61,11 +61,11 @@ writePlumFiles = function(dt, year, output_dir) {
 	bio = dt$cb_fs[Year == year & !Item %in% itemDetails[animal==TRUE], list(Country, Year, Item, other=other, Item, plumDemandItem)]
 	
 	if (exists("dt$isHindcast") && dt$isHindcast){
-		dt = bio[, list(other=0), by=list(Country, Year, Item=plumDemandItem)] ##set to zero for hindcast
+		bio = bio[, list(other=0), by=list(Country, Year, Item=plumDemandItem)] ##set to zero for hindcast
 	} else {
-		dt = bio[, list(other=sum(other, na.rm=TRUE)), by=list(Country, Year, Item=plumDemandItem)]
+		bio = bio[, list(other=sum(other, na.rm=TRUE)), by=list(Country, Year, Item=plumDemandItem)]
 	}
-	write.table(dt, file.path(output_dir, "bio_demand.csv"), sep=",", row.names=FALSE, quote=FALSE)
+	write.table(bio, file.path(output_dir, "bio_demand.csv"), sep=",", row.names=FALSE, quote=FALSE)
 
 	#energy per mass values 
 	cals = merge(dt$cb_fs[Year == year],dt$country_data[Year == year, list(Country,population, gdp_pc)], by=c('Country'))
diff --git a/PLUM/SetupData/ReadFaoForPlum-notHindcast.R b/PLUM/SetupData/ReadFaoForPlum-notHindcast.R
index 7adc3f8ef10512f3829aa26d340a1ed9fc0743b1..e1ccdd43680987643ae87541af31ba29daf03fb2 100644
--- a/PLUM/SetupData/ReadFaoForPlum-notHindcast.R
+++ b/PLUM/SetupData/ReadFaoForPlum-notHindcast.R
@@ -187,7 +187,7 @@ extractionValues = function(dt, dtProcessed){
 	# Get commodities produced from processing
 	dt1= merge(dtProcessed[Year==2010,list(prod=sum(prod)),by=c('Country','processed')],
 			dt[Year==2010,list(Country,processed=Item,rawAmountProcessed = processing)],
-			by=c('Country','processed'), allow.cartesian=TRUE)
+			by=c('Country','processed'))
 	
 	dt1 = dt1[prod > 0 & rawAmountProcessed > 0]
 	dt1[,extractionRate:=prod/rawAmountProcessed]
@@ -201,15 +201,11 @@ extractionValues = function(dt, dtProcessed){
 processData = function(minYear=1960, year=2010){
 	print(paste("Base year is ", year))
 	
-	itemMapping = fread("C:\\Users\\rhenry2\\workspace\\R scripts\\landalloc\\itemsProcessingMap.csv")
-
 	com_bal = readCommoditiyBalance()
 	food_supply = readFoodSupply()
 	cropProduction = readCropProd()
 	# Original FAO data for commodities of interest
 	cb_fs = merge(com_bal, food_supply, by=c("Country", "Year", "Item"), all.x=TRUE)
-	cb_fs = rbind(cb_fs,cropProduction[Country %in% cb_fs[,unique(Country)] & Item=='Oil palm fruit',list(Country,Year,Item,supply=0.0, export=0.0,feed=0.0,food=0.0,import=0.0,
-					waste=0.0,other=0.0,processing=prod,prod,seed=0.0,stockvar=0.0,food_t=0.0,energy_kcal_pc=0.0,protein_g_pc=0.0)])
 	cb_fs = merge(cb_fs, itemDetails[, list(Item, plumCropItem, plumDemandItem, fcr, dryMatter)], by="Item")
 	
 	
@@ -217,20 +213,15 @@ processData = function(minYear=1960, year=2010){
 	cb_fs_sugar[, c('Item', 'dryMatter', 'fcr', 'plumCropItem', 'plumDemandItem') := list("Sugar crops", dryMatter/2, NA, 'Sugar', 'Sugar')] # find mean of DM from sum	
 	cb_fs = rbind(cb_fs[!Item %in% c("Sugar cane", "Sugar beet"), list(Country, Year, Item, supply, export, food, feed, import,other, processing, prod, dryMatter, fcr, energy_kcal_pc, stockvar, plumCropItem, plumDemandItem)], cb_fs_sugar)
 	
-	cb_fs2 = merge(cb_fs[Item %in% itemMapping$resultant], itemMapping[, list(processed, Item=resultant)], by="Item", all.x=TRUE, allow.cartesian=TRUE)	
-	
-	extractionRates = extractionValues(cb_fs,cb_fs2)
-	
+	itemMapping = fread("~/Documents/R_Workspace/landalloc/itemsProcessingMap.csv")
+	processedDt = merge(cb_fs[Item %in% itemMapping$resultant], itemMapping[, list(processed, Item=resultant)], by="Item", all.x=TRUE)	
+	extractionRates = extractionValues(cb_fs,processedDt)
 	itemMapping = merge(itemMapping, extractionRates[,list(processed,extractionRate)],by='processed' )
 	
 	#below converts processed goods into their raw equivalent values i.e. now columns for soybean oil are in soybean equiv. terms 
 	cb_fs3=merge(cb_fs,itemMapping[,list(Item=resultant,extractionRate)],by='Item',all=TRUE)
-	cb_fs3[!is.na(extractionRate),food:=food/extractionRate]
-	cb_fs3[!is.na(extractionRate),feed:=feed/extractionRate]
-	cb_fs3[!is.na(extractionRate),import:=import/extractionRate]
-	cb_fs3[!is.na(extractionRate),export:=export/extractionRate]
-	cb_fs3[!is.na(extractionRate),other:=other/extractionRate] 
-	cb_fs3[!is.na(extractionRate),stockvar:=stockvar/extractionRate] 
+	colsToAdj = c("supply", "export", "food", "feed", "import", "other", "processing", "stockvar", "dryMatter")
+	cb_fs3[!is.na(extractionRate), (colsToAdj) := lapply(.SD, function(x) x/extractionRate), by=list(Country, Year, Item), .SDcols=colsToAdj]
 	cb_fs3[, net_import := import-export]
 	
 	#want to zero production of processed final goods as their production comes from the production of the raw good anyway 
@@ -245,9 +236,6 @@ processData = function(minYear=1960, year=2010){
 	
 	return(list(ssp=ssp,histDt=histDt, baseConsumption=baseConsumption, com_curves=com_curves, country_data=country_data,
 					projectedConsumption=projectedConsumption, cb_fs=cb_fs3, livestockNumbers=livestockNumbers))
-	
-	
-	
 }
 
 processedFull = processData()
diff --git a/itemsInputs.csv b/itemsInputs.csv
index c207c14287a1cb9357a912e360ddbe8e13225087..d093550528744e0906efc8b68bf9f0abcd64f8b0 100644
--- a/itemsInputs.csv
+++ b/itemsInputs.csv
@@ -39,8 +39,7 @@ Molasses,FALSE,FALSE,0.73,Sugar and sweeteners,Sugar,,Sugar
 Mutton & Goat Meat,FALSE,TRUE,0.405,Meat,Ruminants,15,Ruminants
 Nuts,TRUE,FALSE,0.9,Oilseeds and pulses,Oilcrops,,OilcropsPulses
 Oats,TRUE,FALSE,0.879,Cereals,WheatBarleyOats,,Cereals
-Oil palm fruit,TRUE,FALSE,0.34,Oilseeds and pulses,Oilcrops,,OilcropsPulses
-Palm Oil,FALSE,FALSE,1,Oilseeds and pulses,Oilcrops,,OilcropsPulses
+Palm Oil,TRUE,FALSE,1,Oilseeds and pulses,Oilcrops,,OilcropsPulses
 Oilcrops Oil Other,FALSE,FALSE,1,Oilseeds and pulses,Oilcrops,,OilcropsPulses
 Oilcrops Other,TRUE,FALSE,0.88,Oilseeds and pulses,Oilcrops,,OilcropsPulses
 Oilseed Cakes Other,FALSE,FALSE,0.9,Oilseeds and pulses,Oilcrops,,OilcropsPulses
diff --git a/itemsProcessingMap.csv b/itemsProcessingMap.csv
index 99337ac10331790c5ce6101b40ea14ab2047659e..7ba004954efd4982b0d0de0f3d92f5a227f90d2f 100644
--- a/itemsProcessingMap.csv
+++ b/itemsProcessingMap.csv
@@ -13,10 +13,8 @@ Maize,Sweeteners Other,2
 Oilcrops Other,Oilcrops Oil Other,1
 Oilcrops Other,Oilseed Cakes Other,3
 Olives (including preserved),Olive Oil,1
-Oil palm fruit,Palm Oil,3
-Oil palm fruit,Palm kernels,3
-Oil palm fruit,Palmkernel Cake,1
-Oil palm fruit,Palmkernel Oil,3
+Palm kernels,Palmkernel Oil,3
+Palm kernels,Palmkernel Cake,1
 Potatoes,Beverages Fermented,1
 Rape and Mustardseed,Rape and Mustard Cake,1
 Rape and Mustardseed,Rape and Mustard Oil,3