diff --git a/modules/data/src/main/java/io/fluo/webindex/data/Configure.java b/modules/data/src/main/java/io/fluo/webindex/data/Configure.java
index f12504f..9aaa8d8 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/Configure.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/Configure.java
@@ -48,7 +48,7 @@
         new PrintWriter(new BufferedWriter(new FileWriter(dataConfig.getFluoPropsPath(), true)))) {
       while (iter.hasNext()) {
         String key = iter.next();
-        out.println(key + " = " + appConfig.getProperty(key));
+        out.println(key + " = " + appConfig.getRawString(key));
       }
     }
   }
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/FluoApp.java b/modules/data/src/main/java/io/fluo/webindex/data/FluoApp.java
index 19b7ddb..862abd2 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/FluoApp.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/FluoApp.java
@@ -23,7 +23,7 @@
 import org.apache.fluo.recipes.accumulo.export.AccumuloExport;
 import org.apache.fluo.recipes.accumulo.export.AccumuloExporter;
 import org.apache.fluo.recipes.accumulo.export.TableInfo;
-import org.apache.fluo.recipes.export.ExportQueue;
+import org.apache.fluo.recipes.core.export.ExportQueue;
 import org.apache.fluo.recipes.kryo.KryoSimplerSerializer;
 
 public class FluoApp {
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/fluo/DomainMap.java b/modules/data/src/main/java/io/fluo/webindex/data/fluo/DomainMap.java
index e22e92d..abb674b 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/fluo/DomainMap.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/fluo/DomainMap.java
@@ -22,12 +22,13 @@
 import org.apache.fluo.api.config.FluoConfiguration;
 import org.apache.fluo.api.observer.Observer.Context;
 import org.apache.fluo.recipes.accumulo.export.AccumuloExport;
-import org.apache.fluo.recipes.export.ExportQueue;
-import org.apache.fluo.recipes.map.CollisionFreeMap;
-import org.apache.fluo.recipes.map.CollisionFreeMap.Options;
-import org.apache.fluo.recipes.map.Combiner;
-import org.apache.fluo.recipes.map.Update;
-import org.apache.fluo.recipes.map.UpdateObserver;
+import org.apache.fluo.recipes.core.export.ExportQueue;
+import org.apache.fluo.recipes.core.map.CollisionFreeMap;
+import org.apache.fluo.recipes.core.map.CollisionFreeMap.Options;
+import org.apache.fluo.recipes.core.map.Combiner;
+import org.apache.fluo.recipes.core.map.Update;
+import org.apache.fluo.recipes.core.map.UpdateObserver;
+
 
 public class DomainMap {
   public static final String DOMAIN_MAP_ID = "dm";
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageLoader.java b/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageLoader.java
index 650c303..7bbe16c 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageLoader.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageLoader.java
@@ -24,8 +24,8 @@
 import io.fluo.webindex.data.util.FluoConstants;
 import org.apache.fluo.api.client.Loader;
 import org.apache.fluo.api.client.TransactionBase;
-import org.apache.fluo.api.types.TypedTransactionBase;
-import org.apache.fluo.recipes.data.RowHasher;
+import org.apache.fluo.recipes.core.data.RowHasher;
+import org.apache.fluo.recipes.core.types.TypedTransactionBase;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageObserver.java b/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageObserver.java
index d53548c..d464ccd 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageObserver.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/fluo/PageObserver.java
@@ -29,12 +29,12 @@
 import org.apache.fluo.api.data.Bytes;
 import org.apache.fluo.api.data.Column;
 import org.apache.fluo.api.observer.AbstractObserver;
-import org.apache.fluo.api.types.TypedSnapshotBase.Value;
-import org.apache.fluo.api.types.TypedTransactionBase;
 import org.apache.fluo.recipes.accumulo.export.AccumuloExport;
-import org.apache.fluo.recipes.data.RowHasher;
-import org.apache.fluo.recipes.export.ExportQueue;
-import org.apache.fluo.recipes.map.CollisionFreeMap;
+import org.apache.fluo.recipes.core.data.RowHasher;
+import org.apache.fluo.recipes.core.export.ExportQueue;
+import org.apache.fluo.recipes.core.map.CollisionFreeMap;
+import org.apache.fluo.recipes.core.types.TypedSnapshotBase.Value;
+import org.apache.fluo.recipes.core.types.TypedTransactionBase;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/fluo/UriMap.java b/modules/data/src/main/java/io/fluo/webindex/data/fluo/UriMap.java
index 361192c..7f58d06 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/fluo/UriMap.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/fluo/UriMap.java
@@ -27,12 +27,12 @@
 import org.apache.fluo.api.config.FluoConfiguration;
 import org.apache.fluo.api.observer.Observer.Context;
 import org.apache.fluo.recipes.accumulo.export.AccumuloExport;
-import org.apache.fluo.recipes.export.ExportQueue;
-import org.apache.fluo.recipes.map.CollisionFreeMap;
-import org.apache.fluo.recipes.map.CollisionFreeMap.Options;
-import org.apache.fluo.recipes.map.Combiner;
-import org.apache.fluo.recipes.map.Update;
-import org.apache.fluo.recipes.map.UpdateObserver;
+import org.apache.fluo.recipes.core.export.ExportQueue;
+import org.apache.fluo.recipes.core.map.CollisionFreeMap;
+import org.apache.fluo.recipes.core.map.CollisionFreeMap.Options;
+import org.apache.fluo.recipes.core.map.Combiner;
+import org.apache.fluo.recipes.core.map.Update;
+import org.apache.fluo.recipes.core.map.UpdateObserver;
 
 /**
  * This class contains code related to a CollisionFreeMap that keeps track of the count of
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexEnv.java b/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexEnv.java
index d283ddf..634acef 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexEnv.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexEnv.java
@@ -45,7 +45,7 @@
 import org.apache.fluo.core.util.AccumuloUtil;
 import org.apache.fluo.recipes.accumulo.export.TableInfo;
 import org.apache.fluo.recipes.accumulo.ops.TableOperations;
-import org.apache.fluo.recipes.common.Pirtos;
+import org.apache.fluo.recipes.core.common.TableOptimizations;
 import org.apache.fluo.recipes.spark.FluoSparkHelper;
 import org.apache.fluo.recipes.spark.FluoSparkHelper.BulkImportOptions;
 import org.apache.hadoop.conf.Configuration;
@@ -188,7 +188,8 @@
   public void setFluoTableSplits() {
     final String table = fluoConfig.getAccumuloTable();
     try {
-      Pirtos tableOptimizations = Pirtos.getConfiguredOptimizations(getFluoConfig());
+      TableOptimizations tableOptimizations =
+          TableOptimizations.getConfiguredOptimizations(getFluoConfig());
       tableOptimizations.merge(PageObserver.getPageRowHasher().getTableOptimizations(numTablets));
       TableOperations.optimizeTable(getFluoConfig(), tableOptimizations);
     } catch (Exception e) {
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexUtil.java b/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexUtil.java
index c803c61..f10a019 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexUtil.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/spark/IndexUtil.java
@@ -37,9 +37,9 @@
 import org.apache.fluo.api.data.Column;
 import org.apache.fluo.api.data.RowColumn;
 import org.apache.fluo.api.data.RowColumnValue;
+import org.apache.fluo.recipes.core.map.CollisionFreeMap;
+import org.apache.fluo.recipes.core.map.CollisionFreeMap.Initializer;
 import org.apache.fluo.recipes.kryo.KryoSimplerSerializer;
-import org.apache.fluo.recipes.map.CollisionFreeMap;
-import org.apache.fluo.recipes.map.CollisionFreeMap.Initializer;
 import org.apache.hadoop.io.Text;
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
diff --git a/modules/data/src/main/java/io/fluo/webindex/data/util/FluoConstants.java b/modules/data/src/main/java/io/fluo/webindex/data/util/FluoConstants.java
index 5d60185..90c8b42 100644
--- a/modules/data/src/main/java/io/fluo/webindex/data/util/FluoConstants.java
+++ b/modules/data/src/main/java/io/fluo/webindex/data/util/FluoConstants.java
@@ -16,8 +16,8 @@
 
 import io.fluo.webindex.core.Constants;
 import org.apache.fluo.api.data.Column;
-import org.apache.fluo.api.types.StringEncoder;
-import org.apache.fluo.api.types.TypeLayer;
+import org.apache.fluo.recipes.core.types.StringEncoder;
+import org.apache.fluo.recipes.core.types.TypeLayer;
 
 public class FluoConstants {
 
diff --git a/pom.xml b/pom.xml
index 1f111a2..e80522f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,7 +36,7 @@
     <accumulo.version>1.7.1</accumulo.version>
     <dropwizard.version>0.8.2</dropwizard.version>
     <fluo-recipes.version>1.0.0-beta-3-SNAPSHOT</fluo-recipes.version>
-    <fluo.version>1.0.0-beta-3-SNAPSHOT</fluo.version>
+    <fluo.version>1.0.0-incubating-SNAPSHOT</fluo.version>
     <hadoop.version>2.6.3</hadoop.version>
     <maven.compiler.source>1.8</maven.compiler.source>
     <maven.compiler.target>1.8</maven.compiler.target>
