diff --git a/makefile/build.properties b/makefile/build.properties
index a231eef..95d2df6 100644
--- a/makefile/build.properties
+++ b/makefile/build.properties
@@ -13,8 +13,8 @@
 # Build Properties from legacy build
 ######################
 
-ADT_JAR_FILENAME = com.android.ide.eclipse.adt_20.0.2.v201207191942-407447
-DDMS_JAR_FILENAME =  com.android.ide.eclipse.ddms_20.0.2.v201207191942-407447
+#ADT_JAR_FILENAME = com.android.ide.eclipse.adt_20.0.2.v201207191942-407447
+#DDMS_JAR_FILENAME =  com.android.ide.eclipse.ddms_20.0.2.v201207191942-407447
 
 STUDIO_ROOT_BINARY = com.motorola.studio.android.android_root
 
diff --git a/makefile/common.properties b/makefile/common.properties
index e69de29..e440d41 100644
--- a/makefile/common.properties
+++ b/makefile/common.properties
@@ -0,0 +1,35 @@
+studioFeatureName=com.motorola.studio.android.feature
+studioVersion=5.0.0
+studioLangpackVersion=3.0.0
+appvalidatorVersion=2.0.0
+appvalidatorUIVersion=2.0.0
+appvalidatorSDKVersion=2.0.0
+appvalidatorLangpackVersion=2.0.0
+platformVersion=3.2.0
+platformLangpackVersion=3.0.0
+studioFeatureVersion=${studioVersion}.${forceContextQualifier}
+appValidatorFeatureName=com.motorolamobility.preflighting.feature
+appValidatorFeatureVersion=${appvalidatorVersion}.${forceContextQualifier}
+appValidatorUIFeatureName=com.motorolamobility.preflighting.ui.feature
+appValidatorUIFeatureVersion=${appvalidatorUIVersion}.${forceContextQualifier}
+appValidatorSDKFeatureName=com.motorolamobility.preflighting.sdk.feature
+appValidatorSDKFeatureVersion=${appvalidatorSDKVersion}.${forceContextQualifier}
+
+eclipse.builder.path=${BASE_DIR}/env/eclipse
+#these are inside the plugins folder
+eclipse.builder.launcher=org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
+eclipse.builder.pde=org.eclipse.pde.build_3.8.0.v20120523-1555
+#this is inside the features folder
+eclipse.builder.executable=org.eclipse.equinox.executable_3.6.0.v20120522-1813-7P7OG2BFLWUl7UmbVUO9iCm
+
+TCLKIT_PATH = ${BASE_DIR}/env/tclkit
+GIT_REPOSITORY_PATH = ${BASE_DIR}/env/code
+MAKEFILE = ${GIT_REPOSITORY_PATH}/android/makefile
+SOURCE_DIR = ${GIT_REPOSITORY_PATH}/android/src/
+INPUT_DIR = ${BASE_DIR}/input
+REPOSITORIES_DIR = ${INPUT_DIR}/repository
+BASE_REPOSITORIES_DIR = ${REPOSITORIES_DIR}/base
+EXTRA_REPOSITORIES_DIR = ${REPOSITORIES_DIR}/extra
+LANG_REPOSITORIES_DIR = ${REPOSITORIES_DIR}/lang
+
+motodev.keystore = ${MAKEFILE}/MOTODEV.keystore
diff --git a/makefile/setup_env b/makefile/setup_env
new file mode 100755
index 0000000..c478378
--- /dev/null
+++ b/makefile/setup_env
@@ -0,0 +1,290 @@
+#!/bin/bash
+# setup_env
+# Script for pulling down the MOTODEV plugins source, all dependencies, and building
+# If building on Windows with Cygwin or MingGW/Git Bash, use forward slash format
+
+
+
+# Required parameters
+# ===== BEGIN =====
+
+# Insert your build base here. This is where files will be downloaded and build
+export BUILD_BASE_PATH=/home/username/work/build_test
+
+# This is the path to the downloaded Eclipse installation
+export ECLIPSE_BASE_PATH=$BUILD_BASE_PATH/env/eclipse
+
+# Target OS. (WINDOWS, LINUX)
+#export BUILD_TARGET="WINDOWS"
+export BUILD_TARGET="LINUX"
+
+# =====  END  =====
+# Required parameters
+
+
+
+# It's OK if this fails due to existing
+mkdir $BUILD_BASE_PATH
+cd $BUILD_BASE_PATH
+mkdir ./env
+mkdir ./env/code
+#mkdir ./env/code/android
+#mkdir ./env/code/android/makefile
+#mkdir ./env/code/android/src
+#mkdir ./env/eclipse
+mkdir ./input
+mkdir ./input/repository
+mkdir ./input/repository/base
+
+
+# These will come from eclipse git repos
+mkdir ./input/repository/base/REPO_ECLIPSE_PLATFORM
+mkdir ./input/repository/base/REPO_BIRT
+mkdir ./input/repository/base/REPO_DATATOOLS
+mkdir ./input/repository/base/REPO_EMF_XSD_SDO
+mkdir ./input/repository/base/REPO_GEF
+mkdir ./input/repository/base/REPO_JDT
+mkdir ./input/repository/base/REPO_PDE
+mkdir ./input/repository/base/REPO_WTP
+mkdir ./input/repository/base/REPO_EGIT
+mkdir ./input/repository/base/REPO_MYLYN
+
+# This will come from eclipse svn
+mkdir ./input/repository/base/REPO_MAT
+
+# This will come from an archive or Eclipse git
+mkdir ./input/repository/base/REPO_SEQUOYAH
+
+# This will come from Google
+mkdir ./input/repository/base/REPO_ADT
+
+# These are set to get the revision used by MOTODEV. In some cases, it 
+# may be necessary to get the HEAD by removing the -b parameter
+cd ./input/repository/base
+
+if [ -f "REPO_ECLIPSE_PLATFORM.zip" ];
+then
+echo "REPO_ECLIPSE_PLATFORM.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/org.eclipse.platform.source-4.2.zip > REPO_ECLIPSE_PLATFORM.zip;
+fi
+
+if [ -f "REPO_BIRT.zip" ];
+then
+echo "REPO_BIRT.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/birt/downloads/drops/R-R1-4_2_0-201206131143/birt-updatesite-4_2_0.zip > REPO_BIRT.zip;
+fi
+
+if [ -f "REPO_DATATOOLS.zip" ];
+then
+echo "REPO_DATATOOLS.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/datatools/downloads/1.10/dtp-sdk_1.10.zip > REPO_DATATOOLS.zip;
+fi
+
+if [ -f "REPO_EMF_XSD_SDO.zip" ];
+then
+echo "REPO_EMF_XSD_SDO.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/modeling/emf/emf/downloads/drops/2.8.0/R201206080554/emf-xsd-Update-2.8.0.zip > REPO_EMF_XSD_SDO.zip;
+fi
+
+if [ -f "REPO_GEF.zip" ];
+then
+echo "REPO_GEF.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/tools/gef/downloads/drops/3.8.0/R201206112118/GEF-ALL-3.8.0.zip > REPO_GEF.zip;
+fi
+
+if [ -f "REPO_JDT.zip" ];
+then
+echo "REPO_JDT.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/org.eclipse.jdt.source-4.2.zip > REPO_JDT.zip;
+fi
+
+if [ -f "REPO_PDE.zip" ];
+then
+echo "REPO_PDE.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/org.eclipse.pde.source-4.2.zip > REPO_PDE.zip;
+fi
+
+if [ -f "REPO_WTP.zip" ];
+then
+echo "REPO_WTP.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/webtools/downloads/drops/R3.4.0/R-3.4.0-20120612174739/wtp4x-repo-R-3.4.0-20120612174739.zip > REPO_WTP.zip;
+fi
+
+if [ -f "REPO_MAT.zip" ];
+then
+echo "REPO_MAT.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/mat/1.1.1/MemoryAnalyzer-1.1.1.201108240735.zip > REPO_MAT.zip;
+fi
+
+if [ -f "REPO_SEQUOYAH.zip" ];
+then
+echo "REPO_SEQUOYAH.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/sequoyah/downloads/drops/2.1/2.1.1.N20120718-0509/org.eclipse.sequoyah.feature.2.1.1.N20120718-0509.zip > REPO_SEQUOYAH.zip;
+fi
+
+if [ -f "REPO_EGIT.zip" ];
+then
+echo "REPO_EGIT.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/egit/updates-2.0/org.eclipse.egit.repository-2.0.0.201206130900-r.zip > REPO_EGIT.zip;
+fi
+
+if [ -f "REPO_MYLYN.zip" ];
+then
+echo "REPO_MYLYN.zip exists. Skipping.";
+else
+curl http://ftp.osuosl.org/pub/eclipse/mylyn/drops/3.8.0/v20120612-0600/mylyn-3.8.0.v20120612-0600.zip > REPO_MYLYN.zip;
+fi
+
+if [ -f "REPO_ADT.zip" ];
+then
+echo "REPO_ADT.zip exists. Skipping.";
+else
+curl http://dl.google.com/android/ADT-20.0.3.zip > REPO_ADT.zip;
+fi
+
+# call unzip -q if it exists on all the downloaded repos
+# unzip -q REPO_EGIT.zip -d ./REPO_EGIT
+if ! [ -f "./REPO_ECLIPSE_PLATFORM/artifacts.jar" ];
+then 
+unzip -q REPO_ECLIPSE_PLATFORM.zip -d ./REPO_ECLIPSE_PLATFORM;
+fi
+
+if ! [ -f "./REPO_BIRT/artifacts.jar" ];
+then 
+unzip -q REPO_BIRT.zip -d ./REPO_BIRT;
+fi
+
+if ! [ -f "./REPO_EMF_XSD_SDO/artifacts.jar" ];
+then 
+unzip -q REPO_EMF_XSD_SDO.zip -d ./REPO_EMF_XSD_SDO;
+fi
+
+if ! [ -f "./REPO_JDT/artifacts.jar" ];
+then 
+unzip -q REPO_JDT.zip -d ./REPO_JDT;
+fi
+
+if ! [ -f "./REPO_PDE/artifacts.jar" ];
+then 
+unzip -q REPO_PDE.zip -d ./REPO_PDE;
+fi
+
+if ! [ -f "./REPO_WTP/artifacts.jar" ];
+then 
+unzip -q REPO_WTP.zip -d ./REPO_WTP;
+fi
+
+if ! [ -f "./REPO_MAT/artifacts.jar" ];
+then 
+unzip -q REPO_MAT.zip -d ./REPO_MAT;
+fi
+
+if ! [ -f "./REPO_SEQUOYAH/artifacts.jar" ];
+then 
+unzip -q REPO_SEQUOYAH.zip -d ./REPO_SEQUOYAH;
+fi
+
+if ! [ -f "./REPO_EGIT/artifacts.jar" ];
+then 
+unzip -q REPO_EGIT.zip -d ./REPO_EGIT;
+fi
+
+if ! [ -f "./REPO_MYLYN/artifacts.jar" ];
+then 
+unzip -q REPO_MYLYN.zip -d ./REPO_MYLYN;
+fi
+
+if ! [ -f "./REPO_ADT/site.xml" ];
+then 
+unzip -q REPO_ADT.zip -d ./REPO_ADT;
+fi
+
+# Get the MOTODEV plugins code
+cd $BUILD_BASE_PATH
+cd ./env/code
+git clone https://android.googlesource.com/platform/tools/motodev.git
+mv motodev/ android
+
+# Get the eclipse SDK + delta pack
+cd $BUILD_BASE_PATH
+if [ "$BUILD_TARGET" == "WINDOWS" ];
+then
+	if [ -f "eclipse-SDK-4.2-win32-x86_64.zip" ];
+	then
+	echo "eclipse-SDK-4.2-win32-x86_64.zip exists. Skipping.";
+	else
+	curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-SDK-4.2-win32-x86_64.zip > eclipse-SDK-4.2-win32-x86_64.zip;
+	fi
+
+	if ! [ -f "./env/eclipse/artifacts.xml" ];
+	then 
+	unzip -q eclipse-SDK-4.2-win32-x86_64.zip -d ./env;
+	fi
+elif [ "$BUILD_TARGET" == "LINUX" ];
+then
+	if [ -f "eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz" ];
+	then
+	echo "eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz exists. Skipping.";
+	else
+	curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz > eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz;
+	fi
+
+	if ! [ -f "./env/eclipse/artifacts.xml" ];
+	then 
+	tar -xcf eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz -C ./env
+	fi
+fi
+
+if [ -f "eclipse-4.2-delta-pack.zip" ];
+then
+echo "eclipse-4.2-delta-pack.zip exists. Skipping.";
+else
+curl http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-4.2-delta-pack.zip > eclipse-4.2-delta-pack.zip;
+fi
+
+unzip -q -o eclipse-4.2-delta-pack.zip -d ./env
+
+# These two are in an incompatible format
+cd $BUILD_BASE_PATH
+mkdir ./TEMP
+
+if ! [ -f "$BUILD_BASE_PATH/TEMP/REPO_DATATOOLS/eclipse/notice.html" ];
+then
+unzip -q ./input/repository/base/REPO_DATATOOLS.zip -d ./TEMP/REPO_DATATOOLS;
+fi
+
+if ! [ -f "$BUILD_BASE_PATH/input/repository/base/REPO_DATATOOLS/artifacts.jar" ];
+then 
+java -jar $ECLIPSE_BASE_PATH/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_DATATOOLS -artifactRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_DATATOOLS -source $BUILD_BASE_PATH/TEMP/REPO_DATATOOLS/eclipse -compress -publishArtifacts ;
+fi
+
+if ! [ -f "$BUILD_BASE_PATH/TEMP/REPO_GEF/eclipse/plugins/org.eclipse.gef_3.8.0.201206112118.jar" ];
+then
+unzip -q ./input/repository/base/REPO_GEF.zip -d ./TEMP/REPO_GEF ;
+fi
+
+if ! [ -f "$BUILD_BASE_PATH/input/repository/base/REPO_GEF/artifacts.jar" ];
+then 
+java -jar $ECLIPSE_BASE_PATH/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_GEF -artifactRepository file://$BUILD_BASE_PATH/input/repository/base/REPO_GEF -source $BUILD_BASE_PATH/TEMP/REPO_GEF/eclipse -compress -publishArtifacts ;
+fi
+
+# Now that everything is in place, create these two variables
+export ADT_JAR_FILENAME=`ls input/repository/base/REPO_ADT/plugins | grep eclipse.adt_ | sed "s/.jar//"`
+export DDMS_JAR_FILENAME=`ls input/repository/base/REPO_ADT/plugins | grep eclipse.ddms_ | sed "s/.jar//"`
+
+# Run the eclipse to build the plugins
+$ECLIPSE_BASE_PATH/eclipse -nosplash -application org.eclipse.ant.core.antRunner -data $BUILD_BASE_PATH/env/workspace_product -buildfile $BUILD_BASE_PATH/env/code/android/makefile/studioBuild.xml -debug
+# Add these items to the build command line if you want a log file
+#-logger org.apache.tools.ant.XmlLogger -logfile $BUILD_BASE_PATH/log.xml
+
diff --git a/makefile/studioBuild.xml b/makefile/studioBuild.xml
index 5b09735..f0b6dea 100644
--- a/makefile/studioBuild.xml
+++ b/makefile/studioBuild.xml
@@ -444,6 +444,11 @@
 		<concat destfile="${buildDirectory}/build.properties" binary="yes">
 			<fileset dir="${buildDirectory}/" includes="*.properties" />
 		</concat>
+		
+		<!-- <echoproperties destfile="${buildDirectory}/build.properties" >
+			<property name="ADT_JAR_FILENAME" value="${env.ADT_JAR_FILENAME}"/>
+			<property name="DDMS_JAR_FILENAME" value="${env.DDMS_JAR_FILENAME}"/>
+		</echoproperties> -->
 	</target>
 
 
diff --git a/src/features/feature/feature.xml b/src/features/feature/feature.xml
index c348f9d..cf4ce7e 100644
--- a/src/features/feature/feature.xml
+++ b/src/features/feature/feature.xml
@@ -30,7 +30,6 @@
          version="0.0.0"/>
 
    <requires>
-      <import feature="biz.junginger.rss.eclipse.RssPlugin.feature" version="1.0.0" match="equivalent"/>
       <import feature="com.android.ide.eclipse.adt" version="15.0.0" match="greaterOrEqual"/>
       <import feature="com.android.ide.eclipse.hierarchyviewer" version="15.0.0" match="greaterOrEqual"/>
       <import feature="com.android.ide.eclipse.ddms" version="15.0.0" match="greaterOrEqual"/>
@@ -57,7 +56,7 @@
       <import feature="org.eclipse.wst.xml_ui.feature" version="3.2.0" match="greaterOrEqual"/>
       <import feature="org.eclipse.wst.xsl.feature" version="1.1.0" match="greaterOrEqual"/>
       <import feature="org.eclipse.platform" version="3.6.0" match="greaterOrEqual"/>
-      <import feature="net.certiv.proguarddt.feature" version="0.8.0" match="greaterOrEqual"/>
+<!--      <import feature="net.certiv.proguarddt.feature" version="0.8.0" match="greaterOrEqual"/> -->
       <import feature="org.eclipse.epp.mpc" version="1.1.1" match="greaterOrEqual"/>
    </requires>
 
@@ -96,12 +95,12 @@
          version="0.0.0"
          unpack="false"/>
 
-   <plugin
+<!--   <plugin
          id="com.motorola.studio.android.tooldocs.studio.helpbase"
          download-size="0"
          install-size="0"
          version="0.0.0"
-         unpack="false"/>
+         unpack="false"/> -->
 
    <plugin
          id="com.motorola.studio.android.remote"
diff --git a/src/features/preflighting.ui/feature.xml b/src/features/preflighting.ui/feature.xml
index 624b966..48fc161 100644
--- a/src/features/preflighting.ui/feature.xml
+++ b/src/features/preflighting.ui/feature.xml
@@ -33,12 +33,12 @@
          version="0.0.0"
          unpack="false"/>
 
-   <plugin
+ <!--  <plugin
          id="com.motorolamobility.preflighting.tooldocs.validator.helpbase"
          download-size="0"
          install-size="0"
          version="0.0.0"
-         unpack="false"/>
+         unpack="false"/> -->
 
    <plugin
          id="com.motorola.studio.android.common"
diff --git a/src/plugins/android/src/com/motorola/studio/android/perspective/MotodevStudioAndroidPerspective.java b/src/plugins/android/src/com/motorola/studio/android/perspective/MotodevStudioAndroidPerspective.java
index 843aec9..c8f4288 100644
--- a/src/plugins/android/src/com/motorola/studio/android/perspective/MotodevStudioAndroidPerspective.java
+++ b/src/plugins/android/src/com/motorola/studio/android/perspective/MotodevStudioAndroidPerspective.java
@@ -56,8 +56,6 @@
     private static String VIEW_SNIPPETS =
             "org.eclipse.wst.common.snippets.internal.ui.SnippetsView";
 
-    private static String VIEW_RSS = "biz.junginger.newsfeed.eclipse.FeedView";
-
     // DDMS Views
 
     private static String DDMSVIEW_EMULATOR_CONTROL =
@@ -149,7 +147,6 @@
 
         IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, 0.6f, editorArea);
         right.addView(VIEW_ANDROID_EMULATOR);
-        right.addView(VIEW_RSS);
 
         IFolderLayout bottomMiddle =
                 layout.createFolder("bottomMiddle", IPageLayout.BOTTOM, 0.59f, editorArea);
