diff --git a/.gitignore b/.gitignore
index a4f4130042447d40658bdf7faa81e5227b1610fe..62fc485729008b02c966c64c3a3b82d8ce5a226c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,32 +3,26 @@
 /*/build/
 */nbproject/private/*
 /nbproject/private/*
-/Core/release/
+
 /Core/src/org/sleuthkit/autopsy/coreutils/Version.properties
 /Core/build/
 /Core/dist/
 /Core/nbproject/*
 !/Core/nbproject/project.xml
 !/Core/nbproject/project.properties
-/CoreLibs/release/modules/lib/
-/CoreLibs/release/modules/ext/
+
 /CoreLibs/build/
 /CoreLibs/dist/
 /CoreLibs/nbproject/*
 !/CoreLibs/nbproject/project.xml
 !/CoreLibs/nbproject/project.properties
-/KeywordSearch/release/
+
 /KeywordSearch/build/
 /KeywordSearch/dist/
 /KeywordSearch/nbproject/*
 !/KeywordSearch/nbproject/project.xml
 !/KeywordSearch/nbproject/project.properties
-/Ingest/release/modules/ext/
-/Ingest/build/
-/Ingest/dist/
-/Ingest/nbproject/*
-!/Ingest/nbproject/project.xml
-!/Ingest/nbproject/project.properties
+
 */genfiles.properties
 genfiles.properties
 /branding/core/core.jar/org/netbeans/core/startup/Bundle.properties
@@ -74,7 +68,10 @@ Core/src/org/sleuthkit/autopsy/datamodel/ranges.csv
 .*.swp
 
 
-/ImageGallery/release/
-/thunderbirdparser/release/
-/Experimental/release/
 
+Core/release/
+CoreLibs/release/
+Experimental/release/
+ImageGallery/release/
+KeywordSearch/release/
+thunderbirdparser/release/
diff --git a/Core/build.xml b/Core/build.xml
index a3e16b4c78b48ba2e29d3c7949f09b74f7ee032f..2e67e0dcf1010abe515f14c79e0abdf12fabded5 100644
--- a/Core/build.xml
+++ b/Core/build.xml
@@ -6,15 +6,14 @@
     <description>Builds, tests, and runs the project org.sleuthkit.autopsy.core</description>
     <import file="nbproject/build-impl.xml"/>
     <import file="../BootstrapIvy.xml"/>
-          
-       
+    
+     
     <property name="thirdparty.dir" value="${basedir}/../thirdparty" />
-    <property name="release.dir" value="${basedir}/release" />
-    <property name="modules.dir" value="${release.dir}/modules/" />
+    <property name="modules.dir" value="${basedir}/release/modules/" />
     <property name="ext.dir" value="${modules.dir}/ext" />
     
     <target name="get-InternalPythonModules" description="get internal python modules"> 
-        <copy todir="${release.dir}/InternalPythonModules" >
+        <copy todir="release/InternalPythonModules" >
             <fileset dir="{basedir}/../../InternalPythonModules"/>
         </copy>
     </target>
@@ -26,7 +25,7 @@
         </copy>
         
         <!--Copy photorec to release-->
-        <copy todir="${release.dir}/photorec_exec" >
+        <copy todir="${basedir}/release/photorec_exec" >
             <fileset dir="${thirdparty.dir}/photorec_exec"/>
         </copy>
        
@@ -39,6 +38,8 @@
         <copy file="${thirdparty.dir}/jdom/jdom-2.0.5-contrib.jar" todir="${ext.dir}" />
     </target>
     
+    
+    
     <!-- Verify that the TSK_HOME env variable is set -->
     <target name="findTSK">
         <property environment="env"/>
@@ -51,51 +52,44 @@
     
     <target name="getTSKJars" depends="findTSK">
         <property environment="env"/>
-        <copy file="${env.TSK_HOME}/bindings/java/dist/Tsk_DataModel_PostgreSQL.jar"
-              tofile="${basedir}/release/modules/ext/Tsk_DataModel_PostgreSQL.jar"/>
-        <copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar" 
-              tofile="${basedir}/release/modules/ext/sqlite-jdbc-3.8.11.jar"/>
-        <copy file="${env.TSK_HOME}/bindings/java/lib/postgresql-9.4.1211.jre7.jar"
-              tofile="${basedir}/release/modules/ext/postgresql-9.4.1211.jre7.jar"/>
+        <copy file="${env.TSK_HOME}/bindings/java/dist/Tsk_DataModel_PostgreSQL.jar" 
+              tofile="${ext.dir}/Tsk_DataModel_PostgreSQL.jar"/>
+        <copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar"
+              tofile="${ext.dir}/sqlite-jdbc-3.8.11.jar"/>
+        <copy file="${env.TSK_HOME}/bindings/java/lib/postgresql-9.4.1211.jre7.jar" 
+              tofile="${ext.dir}/postgresql-9.4.1211.jre7.jar"/>
         <copy file="${env.TSK_HOME}/bindings/java/lib/mchange-commons-java-0.2.9.jar"
-              tofile="${basedir}/release/modules/ext/mchange-commons-java-0.2.9.jar"/>
-        <copy file="${env.TSK_HOME}/bindings/java/lib/c3p0-0.9.5.jar" 
-              tofile="${basedir}/release/modules/ext/c3p0-0.9.5.jar"/>
+              tofile="${ext.dir}/mchange-commons-java-0.2.9.jar"/>
+        <copy file="${env.TSK_HOME}/bindings/java/lib/c3p0-0.9.5.jar"
+              tofile="${ext.dir}/c3p0-0.9.5.jar"/>
+        <copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar" 
+              tofile="${ext.dir}/sqlite-jdbc-3.8.11.jar"/>
     </target>
 
-
-
-    <target name="download-binlist" description="Download the din list data file used to enrich credit card numbers">
+    <target name="download-binlist">
         <get src="https://raw.githubusercontent.com/binlist/data/master/ranges.csv" 
              dest="src\org\sleuthkit\autopsy\datamodel" 
              ignoreerrors="true"
              verbose="true"/>
     </target>
 
-    <target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy">
+    
+    <target name="get-deps" depends="init-ivy,getTSKJars,get-thirdparty-dependencies,get-InternalPythonModules, download-binlist">
         <mkdir dir="${ext.dir}"/>
         <copy file="${thirdparty.dir}/LICENSE-2.0.txt" todir="${ext.dir}" />
         
         <!-- fetch all the dependencies from Ivy and stick them in the right places -->
         <ivy:resolve/>
-        <ivy:retrieve conf="core" sync="true" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
-        
-        <!-- get additional deps -->   
-        <antcall target="getTSKJars" />
-        <antcall target="get-thirdparty-dependencies" />
-        <antcall target="get-InternalPythonModules"/>
-        
-        <!--Donwload the bin list used for credit card number enrichment-->
-        <antcall target="download-binlist" />   
-    </target>
-     
-    <target name="clean" depends="projectized-common.clean">
-        <!--Override clean to delete jars, etc downloaded with Ivy  
+        <ivy:retrieve conf="core" pattern="${ext.dir}/[artifact]-[revision](-[classifier]).[ext]" />
+           </target>
+
+     <target name="init" depends="get-deps,harness.init"/>
+  
+     <target name="clean" depends="projectized-common.clean">
+        <!--Override clean to delete jars, etc downloaded with Ivy, 
         or copied in from thirdparty folder.  This way we don't end up with 
         out-of-date/unneeded stuff in the installer-->
-        <mkdir dir="${release.dir}"/>
-        <delete includeemptydirs="true" >
-            <fileset dir="${release.dir}" includes="**/*"/>
-        </delete>
+        <delete dir="${basedir}/release/"/>
     </target>
+    
 </project>
diff --git a/Core/ivy.xml b/Core/ivy.xml
index dc7f58715a52ff9b94d13adee0a7572e1fb025d1..55468a600fdd6f6b7643e06c0221160f4ca0fd75 100644
--- a/Core/ivy.xml
+++ b/Core/ivy.xml
@@ -7,8 +7,6 @@
     </configurations>
     <dependencies >
         <dependency conf="core->default" org="org.apache.activemq" name="activemq-all" rev="5.11.1"/>
-        
-        
         <dependency conf="core->default" org="org.apache.curator" name="curator-client" rev="2.8.0"/>
         <dependency conf="core->default" org="org.apache.curator" name="curator-framework" rev="2.8.0"/>
         <dependency conf="core->default" org="org.apache.curator" name="curator-recipes" rev="2.8.0"/>
diff --git a/CoreLibs/build.xml b/CoreLibs/build.xml
index 6188d5a60a5165cc3ea728a1c9f9038987c1af65..abafbf98489b4c644e98c8d04c6505696e75d624 100644
--- a/CoreLibs/build.xml
+++ b/CoreLibs/build.xml
@@ -5,18 +5,12 @@
 <project name="org.sleuthkit.autopsy.corelibs" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
     <description>Builds, tests, and runs the project org.sleuthkit.autopsy.corelibs.</description>
     <import file="nbproject/build-impl.xml"/>
+    <import file="../BootstrapIvy.xml"/>
     
     <property name="thirdparty.dir" value="${basedir}/../thirdparty" />
-    <property name="lib.dir" value="release/modules/lib" />
+    <property name="lib.dir" value="${basedir}/release/modules/lib" />
     
-    
-    <property name="ivy.install.version" value="2.3.0-rc2" />
-    <condition property="ivy.home" value="${env.IVY_HOME}">
-        <isset property="env.IVY_HOME" />
-    </condition>
-    <property name="ivy.home" value="${user.home}/.ant" />
-    <property name="ivy.jar.dir" value="${ivy.home}/lib" />
-    <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
+  
     
     <condition property="os.family" value="unix">  
         <os family="unix"/>  
@@ -29,42 +23,19 @@
     </condition>  
     <import file="build-${os.family}.xml"/> 
 
-    <target name="download-ivy" unless="offline">
-        <available file="${ivy.jar.file}" property="ivy.available"/>
-        <antcall target="-download-ivy" />
-    </target>
-    
-    <target name="-download-ivy" unless="ivy.available">
-        <mkdir dir="${ivy.jar.dir}"/>
-        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" 
-             dest="${ivy.jar.file}" usetimestamp="true"/>
-    </target>
-
-    <!-- init-ivy will bootstrap Ivy if the user doesn't have it already -->
-    <target name="init-ivy" depends="download-ivy" unless="ivy.lib.path">
-        <path id="ivy.lib.path">
-            <fileset dir="${ivy.jar.dir}" includes="*.jar"/>
-        </path>
-        <taskdef resource="org/apache/ivy/ant/antlib.xml"
-                 uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
-    </target>
-        
-    <target name="retrieve-deps" description="retrieve dependencies using ivy" depends="init-ivy,build-native-libs">
+   
+    <target name="get-deps" description="retrieve dependencies using ivy" depends="init-ivy,build-native-libs">
         <ivy:settings file="ivysettings.xml" />
         <ivy:resolve/>
-        <ivy:retrieve sync="false" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />    
+        <ivy:retrieve pattern="${basedir}/release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />    
     </target>
     
-    <target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy,retrieve-deps">
-        <!-- overrode depends attribute -->
-        
-    </target>
+    <target name="init" depends="get-deps,harness.init"/>
     
-    <property name="ext.dir" value="release/modules/ext" />
     <target name="clean" depends="projectized-common.clean">
         <!--Override clean to delete jars, etc downloaded with Ivy, 
         or copied in from thirdparty folder.  This way we don't end up with 
         out-of-date/unneeded stuff in the installer-->
-        <delete dir="${ext.dir}"/>
+        <delete dir="${basedir}/release"/>
     </target>
 </project>
diff --git a/Experimental/build.xml b/Experimental/build.xml
index da231a09fc0a83a1707961f30c9b8467e616f919..b13b9ca77720a9acbcb12a396d86edc23ef9e1f2 100644
--- a/Experimental/build.xml
+++ b/Experimental/build.xml
@@ -6,20 +6,17 @@
     <description>Builds, tests, and runs the project org.sleuthkit.autopsy.experimental.</description>
     <import file="nbproject/build-impl.xml"/>
     <import file="../BootstrapIvy.xml"/>
-    <property name="release.dir" value="${basedir}/release" />
     <target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy">
         <ivy:settings file="ivysettings.xml" />
         <ivy:resolve/>
-        <ivy:retrieve  sync="false" pattern="${release.dir}/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />    
+        <ivy:retrieve  sync="false" pattern="${basedir}/release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />    
     </target>
 
     <target name="clean" depends="projectized-common.clean">
         <!--Override clean to delete jars, etc downloaded with Ivy  
         or copied in from thirdparty folder.  This way we don't end up with 
         out-of-date/unneeded stuff in the installer-->
-        <mkdir dir="${release.dir}"/>
-        <delete includeemptydirs="true">
-            <fileset dir="${release.dir}" includes="**/*"/>
-        </delete>
+        <mkdir dir="${basedir}/release"/>
+        <delete dir="${basedir}/release"/>
     </target>
 </project>
diff --git a/KeywordSearch/build.xml b/KeywordSearch/build.xml
index 7789af8f1644d07589029cdade01a9d1943b3877..73b124f2a6e1de9d7ba5b8b9e2a925b7b298f035 100644
--- a/KeywordSearch/build.xml
+++ b/KeywordSearch/build.xml
@@ -7,44 +7,40 @@
     <import file="nbproject/build-impl.xml"/>
     <import file="../BootstrapIvy.xml"/>
     
-    <property name="release.dir" value="release" />
     
     <target name="get-solr-deployment" description="copy the solr deployment into release"> 
-        <copy  todir="${release.dir}/solr" >
+        <copy  todir="${basedir}/release/solr" >
             <fileset dir="solr"/>
         </copy>
     </target>
     
     <target name="get-solr-upgrader-jars" description="copy the solr index upgrader jars into release"> 
         <copy  file="SolrUpgradeTools/Solr4IndexUpgrade.jar"
-               todir="${release.dir}/Solr4to5IndexUpgrade" />
+               todir="${basedir}/release/Solr4to5IndexUpgrade" />
         <copy file="SolrUpgradeTools/Solr5IndexUpgrade.jar"
-              todir="${release.dir}/Solr5to6IndexUpgrade" />
+              todir="${basedir}/release/Solr5to6IndexUpgrade" />
     </target>
     
-    <target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy">
-        <!-- fetch all the dependencies from Ivy and stick them in the right places -->
+    <target name="get-deps" depends="init-ivy, get-solr-deployment,get-solr-upgrader-jars">
+         <!-- fetch all the dependencies from Ivy and stick them in the right places -->
         <ivy:resolve/>
-        <ivy:retrieve conf="autopsy" sync="true" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
-        <ivy:retrieve conf="jetty-libs" sync="true" pattern="release/solr/lib/[artifact]-[revision](-[classifier]).[ext]" />
-        <ivy:retrieve conf="solr-libs" sync="true" pattern="release/solr/solr/lib/[artifact]-[revision](-[classifier]).[ext]" />
-        <ivy:retrieve conf="slf4j-libs" sync="true" pattern="release/solr/lib/ext/[artifact]-[revision](-[classifier]).[ext]" />
-        <ivy:retrieve conf="servlet" sync="true" pattern="release/solr/lib/servlet-api-3.0.jar" />
-        <ivy:retrieve conf="solr4to5" sync="true" pattern="release/Solr4to5IndexUpgrade/lib/[artifact]-[revision](-[classifier]).[ext]" />
-        <ivy:retrieve conf="solr5to6" sync="true" pattern="release/Solr5to6IndexUpgrade/lib/[artifact]-[revision](-[classifier]).[ext]" />
-      
-        <!--Copy Solr deployment and tools that arn't downloaded with Ivy-->
-        <antcall target="get-solr-deployment" /> 
-        <antcall target="get-solr-upgrader-jars" /> 
+        <ivy:retrieve conf="autopsy"  pattern="${basedir}/release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
+        <ivy:retrieve conf="jetty-libs"  pattern="${basedir}/release/solr/lib/[artifact]-[revision](-[classifier]).[ext]" />
+        <ivy:retrieve conf="solr-libs"  pattern="${basedir}/release/solr/solr/lib/[artifact]-[revision](-[classifier]).[ext]" />
+        <ivy:retrieve conf="slf4j-libs"  pattern="${basedir}/release/solr/lib/ext/[artifact]-[revision](-[classifier]).[ext]" />
+        <ivy:retrieve conf="servlet"  pattern="${basedir}/release/solr/lib/servlet-api-3.0.jar" />
+        <ivy:retrieve conf="solr4to5" pattern="${basedir}/release/Solr4to5IndexUpgrade/lib/[artifact]-[revision](-[classifier]).[ext]" />
+        <ivy:retrieve conf="solr5to6"  pattern="${basedir}/release/Solr5to6IndexUpgrade/lib/[artifact]-[revision](-[classifier]).[ext]" />
     </target>
+    
+    <target name="init" depends="get-deps, harness.init"/>
+       
      
     <target name="clean" depends="projectized-common.clean">
         <!--Override clean to delete jars, etc downloaded with Ivy  
         or copied in from thirdparty folder.  This way we don't end up with 
         out-of-date/unneeded stuff in the installer-->
-        <delete includeemptydirs="true">
-            <fileset dir="release" includes="**/*"/>
-        </delete>
+        <delete  dir="${basedir}/release"/>
     </target>
 
     <target name="clean-all" depends="clean" description="Clear Ivy cache.">
diff --git a/thunderbirdparser/build.xml b/thunderbirdparser/build.xml
index 6199b4170500b71a431058eaf38f6c0a959cad65..80c452ef3199c40c8520fe716c5379a0121ace18 100644
--- a/thunderbirdparser/build.xml
+++ b/thunderbirdparser/build.xml
@@ -5,36 +5,8 @@
 <project name="org.sleuthkit.autopsy.thunderbirdparser" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
     <description>Builds, tests, and runs the project org.sleuthkit.autopsy.thunderbirdparser.</description>
     <import file="nbproject/build-impl.xml"/>
-        
-    <property name="ivy.install.version" value="2.3.0-rc2" />
-    <condition property="ivy.home" value="${env.IVY_HOME}">
-        <isset property="env.IVY_HOME" />
-    </condition>
-    <property name="ivy.home" value="${user.home}/.ant" />
-    <property name="ivy.jar.dir" value="${ivy.home}/lib" />
-    <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
-
-    <target name="download-ivy" unless="offline">
-        <available file="${ivy.jar.file}" property="ivy.available"/>
-        <antcall target="-download-ivy" />
-    </target>
-    
-    <target name="-download-ivy" unless="ivy.available">
-        <mkdir dir="${ivy.jar.dir}"/>
-        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" 
-             dest="${ivy.jar.file}" usetimestamp="true"/>
-    </target>
-
-    <!-- init-ivy will bootstrap Ivy if the user doesn't have it already -->
-    <target name="init-ivy" depends="download-ivy" unless="ivy.lib.path">
-        <path id="ivy.lib.path">
-            <fileset dir="${ivy.jar.dir}" includes="*.jar"/>
-        </path>
-        <taskdef resource="org/apache/ivy/ant/antlib.xml"
-                 uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
-    </target>
-    
-
+        <import file="../BootstrapIvy.xml"/>
+   
     <property name="thirdparty.dir" value="${basedir}/../thirdparty" />
     <property name="ext.dir" value="release/modules/ext" />
     
@@ -50,13 +22,12 @@
         <copy file="${thirdparty.dir}/java-libpst/java-libpst-1.0-SNAPSHOT.jar" todir="${ext.dir}" />
     </target>
 
-    <target name="init" depends="basic-init,files-init,build-init,-javac-init,init-ivy">
+    <target name="get-deps" depends="init-ivy, get-thirdparty-jars">
         <!-- fetch all the dependencies from Ivy and stick them in the right places -->
         <ivy:resolve/>
-        <ivy:retrieve conf="autopsy" sync="true" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
-       
-        <!--  copy jars not downloaded with Ivy -->
-        <antcall target="get-thirdparty-jars"/>
+        <ivy:retrieve conf="autopsy" pattern="release/modules/ext/[artifact]-[revision](-[classifier]).[ext]" />
     </target>
+    
+    <target name="init" depends="get-deps,harness.init"/>
 </project>