diff --git a/changes.txt b/changes.txt
deleted file mode 100644
index 3b5f81f..0000000
--- a/changes.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-[0.9 Final]
-
-* org.apache.ki.spring.SpringWebConfiguration renamed to org.apache.ki.spring.SpringIniWebConfiguration
-* org.apache.ki.util.ThreadContext fixed to correctly work in child/spawned threads from a parent thread (sometimes surfaced in Tomcat environments)
-* org.apache.ki.web.servlet.FilterChainWrapper renamed to org.apache.ki.web.servlet.ProxiedFilterChain to maintain parallel naming conventions with ProxiedSession.
-* org.apache.ki.web.attr.CookieAttribute#onRetrieveValue would return deleted cookies (maxAge of 0) on Tomcat.  It now only returns a value if the cookie is non null and maxAge != 0 (-1 or positive only).
-* Added *AnnotationHandler implementations and refactored the AuthorizingAnnotationMethodInterceptor implementations
-  to delegate to internal AnnotationHandler instances for performing authorization checks based on annotations.  This was
-  done to ensure Annotations could be processed independently of where they are declared (method, class, etc).
-* New Feature: added @RequiresGuest, @RequiresUser, @RequiresAuthentication annotations (and corresponding
-  AnnotationHandler implementations to support them).
-* Native SimpleSession session timeout bug fixed [JSEC-23]
-
-[0.9 RC2]
-
-* DelegatingSubject is now still usable after it is logged out (no invalid exceptions thrown).
-  The Subject is now just considered 'anonymous' again at that point.
-
-* ReflectionBuilder (used in Apache Ki .ini and web.xml based text configuration) now handles setting
-  primitive attributes correctly, performing proper string-to-primitive conversion (BeanUtils does this automatically).
-
-* ReflectionBuilder (used for Apache Ki .ini and web.xml configuration) now supports setting other previously configured
-  objects by '$' reference. For example:
-  bar = some.package.class.Bar
-  foo = some.package.class.Foo
-  foo.bar = $bar
-
-
-
diff --git a/ivy.xml b/ivy.xml
deleted file mode 100644
index 378a9d2..0000000
--- a/ivy.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-            xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
-
-    <info organisation="org.apache.ki" module="ki" revision="0.9.0" status="snapshot"
-          publication="20080814234001">
-        <license name="Apache License, Version 2.0" url="http://www.apache.org/licenses/LICENSE-2.0.html"/>
-        <ivyauthor name="Les Hazlewood" url="http://www.leshazlewood.com"/>
-        <description homepage="http://ki.apache.org">
-            Apache Ki is a powerful and flexible open-source Java security framework that cleanly handles
-            authentication, authorization, enterprise session management, single sign-on and cryptography services.
-
-            Our mission: To provide the most robust and comprehensive Java security framework available while
-            also being very easy to understand and extremely simple to use.
-        </description>
-    </info>
-
-    <configurations defaultconfmapping="*->default">
-        <conf name="core" description="Dependencies for the core module."/>
-        <conf name="web" extends="core" description="Depdencies for the web module."/>
-        <conf name="ehcache" extends="core" description="Dependencies for the ehcache module."/>
-        <conf name="quartz" extends="core" description="Dependencies for the quartz module."/>
-        <conf name="spring" extends="web" description="Dependencies for the spring module."/>
-        <conf name="samples" extends="web,ehcache,quartz,spring"
-              description="Required dependencies when running one of the sample web applications."/>
-        <conf name="retroweaver"/>
-        <conf name="test" extends="*" description="Any and all dependencies so all functionality can be tested."/>
-        <conf name="docbook"/>
-    </configurations>
-
-    <dependencies>
-
-        <!-- Minimal deps, depending on VM: -->
-        <dependency org="commons-logging" name="commons-logging" rev="1.1.1" transitive="false" conf="core"/>
-        <dependency org="commons-beanutils" name="commons-beanutils" rev="1.7.0" transitive="false" conf="core"/>
-
-        <!-- Feature-based dependencies: -->
-        <dependency org="net.sourceforge.retroweaver" name="retroweaver" rev="2.0.5" conf="retroweaver"/>
-        <dependency org="net.sourceforge.retroweaver" name="retroweaver-rt" rev="2.0.5" conf="retroweaver"/>
-        <dependency org="net.sf.ehcache" name="ehcache" rev="1.4.1" transitive="false" conf="ehcache,samples"/>
-        <dependency org="backport-util-concurrent" name="backport-util-concurrent" rev="3.1" transitive="false"
-                    conf="samples"/>
-        <dependency org="xerces" name="xercesImpl" rev="2.8.1" transitive="false" conf="samples"/>
-        <dependency org="quartz" name="quartz" rev="1.5.2" transitive="false" conf="quartz"/>
-        <dependency org="org.springframework" name="spring" rev="2.5.6" transitive="false" conf="spring,samples"/>
-        <dependency org="org.springframework" name="spring-webmvc" rev="2.5.6" transitive="false"
-                    conf="spring,samples"/>
-        <dependency org="javax.servlet" name="servlet-api" rev="2.4" transitive="false" conf="web,samples"/>
-        <dependency org="javax.servlet.jsp" name="jsp-api" rev="2.0" transitive="false" conf="web"/>
-
-        <!-- Sample application dependencies: -->
-        <dependency org="log4j" name="log4j" rev="1.2.15" transitive="false" conf="samples"/>
-        <dependency org="javax.servlet" name="jstl" rev="1.2" transitive="false" conf="samples"/>
-        <dependency org="taglibs" name="standard" rev="1.1.2" transitive="false" conf="samples"/>
-        <dependency org="hsqldb" name="hsqldb" rev="1.8.0.7" transitive="false" conf="samples"/>
-        <dependency org="org.hibernate" name="ejb3-persistence" rev="1.0.2.GA" conf="samples"/>
-        <dependency org="org.hibernate" name="hibernate-annotations" rev="3.2.1.ga" conf="samples">
-            <exclude org="javax.transaction"/>
-        </dependency>
-        <dependency org="org.hibernate" name="hibernate" rev="3.2.6.ga" conf="samples">
-            <!-- JTA 1.0.1b jar is not allowed in the Maven repo because of Sun's binary license, so we have to
-                 download it explictly from another location (we use Geronimo's version) -->
-            <exclude org="javax.transaction"/>
-        </dependency>
-        <dependency org="org.apache.geronimo.specs" name="geronimo-jta_1.0.1B_spec" rev="1.1.1" conf="samples"/>
-
-        <!-- Testing -->
-        <dependency org="org.easymock" name="easymock" rev="2.3" transitive="false" conf="test"/>
-        <dependency org="org.easymock" name="easymockclassextension" rev="2.3" transitive="false" conf="test"/>
-        <dependency org="junit" name="junit" rev="4.4" transitive="false" conf="test"/>
-
-        <dependency org="org.jsecurity" name="docbook-libs" rev="1.0.0" transitive="false" conf="docbook">
-            <artifact name="docbook-libs" type="zip" ext="zip"/>
-        </dependency>
-
-    </dependencies>
-
-</ivy-module>
diff --git a/samples/pom.xml b/samples/pom.xml
index cd05fe8..6dcc0ef 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -34,8 +34,9 @@
 
     <modules>
         <module>quickstart</module>
-        <module>spring</module>
         <module>web</module>
+        <module>spring</module>        
+        <module>sprhib</module>
     </modules>
 
 </project>
diff --git a/samples/spring-hibernate/build.xml b/samples/spring-hibernate/build.xml
deleted file mode 100644
index 79d02cd..0000000
--- a/samples/spring-hibernate/build.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<project name="spring-hibernate" default="package">
-
-    <property name="root.base.dir" value="../.."/>
-    <property name="module.name" value="samples-sprhib"/>
-    <import file="${root.base.dir}/common.ant.xml"/>
-    <property name="dist.jarName" value="${project.name}-${module.name}-${version}"/>
-    <property name="dist.jar" value="${dist.dir}/samples/${dist.jarName}.jar"/>
-    <property name="dist.warName" value="${project.name}-${module.name}-${version}"/>
-    <property name="dist.war" value="${dist.dir}/samples/${dist.warName}.war"/>
-
-    <path id="compile.path">
-        <fileset dir="${lib.dir}/samples">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="${dist.dir}/modules">
-            <include name="${project.name}-core-${version}.jar"/>
-            <include name="${project.name}-web-${version}.jar"/>
-        </fileset>
-    </path>
-
-    <!-- ===================================================================
-         clean - clean all build remnants from this submodule
-         ==================================================================== -->
-    <target name="clean-deploy-dir" description="Removes the deployed war directory">
-        <echo message="cleaning ${dist.warName} module from ${deploy.dir}"/>
-        <delete file="${deploy.dir}/${dist.warName}.war"/>
-        <delete dir="${deploy.dir}/${dist.warName}"/>
-    </target>
-    <target name="clean" depends="clean-deploy-dir" description="Cleans the Spring/Hibernate sample webapp build">
-        <echo message="cleaning ${module.name} module"/>
-        <delete file="${dist.jar}"/>
-        <delete file="${dist.war}"/>
-        <delete dir="${build.dir}"/>
-    </target>
-
-    <target name="compile" depends="compile.src"/> <!-- no test classes, no need to depend on compile.test -->
-
-    <target name="war">
-            <echo message="DIST DIR: ${dist.dir}"/>
-        <war warfile="${dist.war}" webxml="src/main/webapp/WEB-INF/web.xml">
-            <lib dir="${dist.dir}" includes="*.jar"/>
-            <lib dir="${dist.dir}/samples" includes="ki-samples-sprhib*.jar"/>
-            <lib dir="${dist.dir}/modules" includes="*.jar"/>
-            <lib dir="${lib.dir}/samples">
-                <include name="jstl-*.jar"/>
-                <include name="standard-*.jar"/>
-                <include name="log4j-*.jar"/>
-                <include name="commons-*.jar"/>
-                <include name="ehcache-*.jar"/>
-                <include name="backport-util-concurrent-*.jar"/>
-                <include name="hsqldb-*.jar"/>
-                <include name="spring-*.jar"/>
-            </lib>
-            <!-- Hibernate libs: -->
-            <lib dir="${lib.dir}/samples">
-                <include name="hibernate-*.jar"/>
-                <include name="persistence-api-*.jar"/>
-                <include name="antlr-*.jar"/>
-                <include name="asm-attrs-*.jar"/>
-                <include name="asm-*.jar"/>
-                <include name="cglib-*.jar"/>
-                <include name="geronimo-jta_1.0.1B_spec-*.jar"/>
-                <include name="dom4j-*.jar"/>
-                <include name="commons-collections-*.jar"/>
-            </lib>
-            <fileset dir="${base.dir}/web" includes="**" excludes="**/web.xml, **/build.xml"/>
-        </war>
-
-    </target>
-
-    <target name="package" depends="jar,war"/>
-
-    <target name="quick-deploy" description="Blindly deploys the sample Spring/Hibernate .war to Tomcat">
-        <echo>Deploying application to Tomcat...</echo>
-        <unzip src="${dist.war}" dest="${env.CATALINA_HOME}/webapps/${project.name}-${module.name}"/>
-        <touch file="${env.CATALINA_HOME}/webapps/${project.name}-${module.name}/WEB-INF/web.xml"/>
-    </target>
-
-    <target name="deploy" depends="package,quick-deploy"
-            description="Creates and deploys the sample Spring/Hibernate .war to Tomcat"/>
-
-</project>
diff --git a/samples/spring/build.xml b/samples/spring/build.xml
deleted file mode 100644
index 84bb081..0000000
--- a/samples/spring/build.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<project name="samples-spring" default="package">
-
-    <property name="root.base.dir" value="../.."/>
-    <property name="module.name" value="samples-spring"/>
-    <import file="${root.base.dir}/common.ant.xml"/>
-    <property name="dist.jarName" value="${project.name}-${module.name}-${version}"/>
-    <property name="dist.jar" value="${dist.dir}/samples/${dist.jarName}.jar"/>
-    <property name="dist.warName" value="${project.name}-${module.name}-${version}"/>
-    <property name="dist.war" value="${dist.dir}/samples/${dist.warName}.war"/>
-
-    <path id="compile.path">
-        <fileset dir="${lib.dir}/samples">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="${dist.dir}/modules">
-            <include name="${project.name}-core-${version}.jar"/>
-            <include name="${project.name}-web-${version}.jar"/>
-        </fileset>
-    </path>
-
-    <!-- ===================================================================
-         clean - clean all build remnants from this submodule
-         ==================================================================== -->
-    <target name="clean-deploy-dir" description="Removes the deployed war directory">
-        <echo message="cleaning ${dist.warName} module from ${deploy.dir}"/>
-        <delete file="${deploy.dir}/${dist.warName}.war"/>
-        <delete dir="${deploy.dir}/${dist.warName}"/>
-    </target>
-    <target name="clean" depends="clean-deploy-dir" description="Cleans the Spring sample webapp build">
-        <echo message="cleaning ${module.name} module"/>
-        <delete file="${dist.jar}"/>
-        <delete file="${dist.war}"/>
-        <delete dir="${build.dir}"/>
-    </target>
-
-    <target name="grabLogo" description="Ensures the Apache Ki logo is available to the jar task for inclusion in the jar">
-        <copy todir="${classes.dir}">
-            <fileset dir="webroot">
-                <include name="logo.png"/>
-            </fileset>
-        </copy>
-    </target>
-
-    <target name="compile" depends="compile.src"/> <!-- no test classes, no need to depend on compile.test -->
-
-
-    <target name="jar" depends="compile,grabLogo,jar.jdk15,jar.retroweaver"
-            description="Creates a .jar of the Spring sample app classes"/>
-
-    <target name="war">
-        <property name="webstart.lib.dir" value="${build.dir}/webstart"/>
-        <mkdir dir="${webstart.lib.dir}"/>
-        <copy todir="${webstart.lib.dir}" preservelastmodified="true" flatten="true">
-            <fileset dir="${dist.dir}" includes="${dist.jarName}.jar"/>
-            <fileset dir="${dist.dir}" includes="${project.name}-${version}.jar"/>
-            <fileset dir="${lib.dir}/samples" includes="spring-*.jar" excludes="spring-webmvc-*.jar"/>
-            <fileset dir="${lib.dir}/samples" includes="commons-*.jar"/>
-        </copy>
-        <signjar keystore="${etc.dir}/jsecurity-sample.jks"
-                 alias="jsecurity"
-                 keypass="jsecurity"
-                 storepass="jsecurity">
-            <fileset dir="${webstart.lib.dir}" includes="*.jar"/>
-        </signjar>
-
-        <war warfile="${dist.war}" webxml="src/main/webapp/WEB-INF/web.xml">
-            <lib dir="${lib.dir}/samples">
-                <exclude name="servlet-api-*.jar"/>
-            </lib>
-            <lib dir="${lib.dir}/samples" includes="*.jar" excludes="servlet-api-*.jar"/>
-            <lib dir="${root.dist.dir}" includes="${project.name}-${version}.jar"/>
-            <webinf dir="${basedir}" includes="resources/**"/>
-            <fileset dir="webroot" includes="**" excludes="**/web.xml"/>
-
-            <lib dir="${dist.dir}" includes="*.jar"/>
-
-            <!-- Jar for webstart application -->
-            <fileset dir="${webstart.lib.dir}" includes="*.jar"/>
-        </war>
-
-    </target>
-
-    <target name="package" depends="jar,war"/>
-
-    <target name="quick-deploy" description="Blindly deploys the sample Spring .war to Tomcat">
-        <echo>Deploying application to Tomcat...</echo>
-        <unzip src="${dist.war}" dest="${env.CATALINA_HOME}/webapps/${project.name}-${module.name}"/>
-        <touch file="${env.CATALINA_HOME}/webapps/${project.name}-${module.name}/WEB-INF/web.xml"/>
-    </target>
-
-    <target name="deploy" depends="package,quick-deploy"
-            description="Creates and deploys the sample Spring .war to Tomcat"/>
-
-
-</project>
diff --git a/support/ehcache/src/main/java/org/apache/ki/cache/ehcache/ehcache.xml b/support/ehcache/src/main/resources/org/apache/ki/cache/ehcache/ehcache.xml
similarity index 100%
rename from support/ehcache/src/main/java/org/apache/ki/cache/ehcache/ehcache.xml
rename to support/ehcache/src/main/resources/org/apache/ki/cache/ehcache/ehcache.xml
