diff --git a/core/src/main/javadoc/images/bkg_blkheader.png b/core/src/main/javadoc/images/bkg_blkheader.png
new file mode 100644
index 0000000000..499e912008
Binary files /dev/null and b/core/src/main/javadoc/images/bkg_blkheader.png differ
diff --git a/core/src/main/javadoc/images/bkg_gradient.gif b/core/src/main/javadoc/images/bkg_gradient.gif
new file mode 100644
index 0000000000..077fa157ed
Binary files /dev/null and b/core/src/main/javadoc/images/bkg_gradient.gif differ
diff --git a/core/src/main/javadoc/images/bkgheader.png b/core/src/main/javadoc/images/bkgheader.png
new file mode 100644
index 0000000000..ec13b78bad
Binary files /dev/null and b/core/src/main/javadoc/images/bkgheader.png differ
diff --git a/core/src/main/javadoc/images/h1_hdr.png b/core/src/main/javadoc/images/h1_hdr.png
new file mode 100644
index 0000000000..31caf5efb5
Binary files /dev/null and b/core/src/main/javadoc/images/h1_hdr.png differ
diff --git a/core/src/main/javadoc/package.html b/core/src/main/javadoc/package.html
index 7c2c428ad4..521ff379a9 100644
--- a/core/src/main/javadoc/package.html
+++ b/core/src/main/javadoc/package.html
@@ -1,31 +1,54 @@
-Hibernate JavaDoc documentation.
-
+Hibernate Core (native API) JavaDocs
-The following are considered to define the "core API" of Hibernate, meaning it is fully intended that they
-be exposed to application code:
-
+In addition to {@link org.hibernate.SessionFactory} and {@link org.hibernate.Session}, applications using the
+Hibernate native API will often need to utilize the following interfaces:
+ - {@link org.hibernate.cfg.Configuration}
- {@link org.hibernate.Hibernate}
- - {@link org.hibernate.Session}
- - {@link org.hibernate.SessionFactory}
- {@link org.hibernate.Transaction}
- {@link org.hibernate.Query}
- {@link org.hibernate.Criteria}
- - {@link org.hibernate.ScrollableResults}
- - {@link org.hibernate.cfg.Configuration}
+ - {@link org.hibernate.criterion.Projection}
+ - {@link org.hibernate.criterion.Projections}
+ - {@link org.hibernate.criterion.Criterion}
- {@link org.hibernate.criterion.Restrictions}
- {@link org.hibernate.criterion.Order}
- {@link org.hibernate.criterion.Example}
-
+These interfaces are fully intended to be exposed to application code.
+
-The Extension SPIs are intended to be used by application programmers
-to extend Hibernate functionality. None of these interfaces are intended
-to be called by the application - they are called internally by Hibernate.
-These contracts are less stable than the Core API. The safest way to extend
-functionality is to contribute extensions back to the project.
-
+Extensions
+Hibernate defines a number of interfaces that are completely intended to be extendable by application programmers and/or
+integrators. Listed below is a (not necessarily exhaustive) list of the most commonly utilized extension points:
+ - {@link org.hibernate.EntityNameResolver}
+ - {@link org.hibernate.Interceptor} / {@link org.hibernate.EmptyInterceptor}
+ - {@link org.hibernate.Transaction} / {@link org.hibernate.transaction.TransactionFactory}
+ - {@link org.hibernate.context.CurrentSessionContext}
+ - {@link org.hibernate.dialect.Dialect}
+ - {@link org.hibernate.dialect.resolver.DialectResolver}
+ - {@link org.hibernate.event event listener} interfaces
+ - {@link org.hibernate.id.IdentifierGenerator}
+ - {@link org.hibernate.tuple.entity.EntityTuplizer} / {@link org.hibernate.tuple.component.ComponentTuplizer}
+ - {@link org.hibernate.type.Type} / {@link org.hibernate.usertype}
+
+Note that there is a large degree of crossover between the notion of extension points and that of an integration SPI (below).
+
-You can find all the Hibernate documentation at .
-
+Integration SPI
+Hibernate provides a number of SPIs intended to integrate itself with various third party frameworks or application code to provide
+additional capabilities. The SPIs fall mainly into 2 categories:
+ - Caching - {@link org.hibernate.cache.RegionFactory}
+ - JDBC Connection management - {@link org.hibernate.connection.ConnectionProvider}
+
+Certainly {@link org.hibernate.dialect.Dialect} could fit in here as well, though we chose to list it under extensions since application
+developers tend to provide extended dialects rather frequently for various reasons.
+
+Another SPI that is not yet exposed but is planned for such is the bytecode provider SPI. See {@link org.hibernate.bytecode}
+for details.
+
+
+Complete Hibernate documentation may be found online at http://docs.jboss.org/hibernate/.
+
+
+
+Aggregated Hibernate Core JavaDocs
+
+Hibernate provides both
+ -
+ a native API comprised mainly of {@link org.hibernate.SessionFactory} and {@link org.hibernate.Session}
+
+ -
+ an implementation of the JSR-317 Java Persistence API (JPA) specification comprised mainly of
+ {@link org.hibernate.ejb.EntityManagerFactoryImpl} and {@link org.hibernate.ejb.EntityManagerImpl}
+
+
+
+
+Native API
+In addition to {@link org.hibernate.SessionFactory} and {@link org.hibernate.Session}, applications using the
+native API will often need to utilize the following interfaces:
+ - {@link org.hibernate.cfg.Configuration}
+ - {@link org.hibernate.Hibernate}
+ - {@link org.hibernate.Transaction}
+ - {@link org.hibernate.Query}
+ - {@link org.hibernate.Criteria}
+ - {@link org.hibernate.criterion.Projection}
+ - {@link org.hibernate.criterion.Projections}
+ - {@link org.hibernate.criterion.Criterion}
+ - {@link org.hibernate.criterion.Restrictions}
+ - {@link org.hibernate.criterion.Order}
+ - {@link org.hibernate.criterion.Example}
+
+These interfaces are fully intended to be exposed to application code.
+
+
+JPA
+The JPA interfaces are all defined by the JPA specification. For details see {@link javax.persistence}
+
+
+Extensions
+Hibernate defines a number of interfaces that are completely intended to be extendable by application programmers and/or
+integrators. Listed below is a (not necessarily exhaustive) list of the most commonly utilized extension points:
+ - {@link org.hibernate.EntityNameResolver}
+ - {@link org.hibernate.Interceptor} / {@link org.hibernate.EmptyInterceptor}
+ - {@link org.hibernate.Transaction} / {@link org.hibernate.transaction.TransactionFactory}
+ - {@link org.hibernate.context.CurrentSessionContext}
+ - {@link org.hibernate.dialect.Dialect}
+ - {@link org.hibernate.dialect.resolver.DialectResolver}
+ - {@link org.hibernate.event event listener} interfaces
+ - {@link org.hibernate.id.IdentifierGenerator}
+ - {@link org.hibernate.tuple.entity.EntityTuplizer} / {@link org.hibernate.tuple.component.ComponentTuplizer}
+ - {@link org.hibernate.type.Type} / {@link org.hibernate.usertype}
+
+Note that there is a large degree of crossover between the notion of extension points and that of an integration SPI (below).
+
+
+Integration SPI
+Hibernate provides a number of SPIs intended to integrate itself with various third party frameworks or application code to provide
+additional capabilities. The SPIs fall mainly into 2 categories:
+ - Caching - {@link org.hibernate.cache.RegionFactory}
+ - JDBC Connection management - {@link org.hibernate.connection.ConnectionProvider}
+
+Certainly {@link org.hibernate.dialect.Dialect} could fit in here as well, though we chose to list it under extensions since application
+developers tend to provide extended dialects rather frequently for various reasons.
+
+Another SPI that is not yet exposed but is planned for such is the bytecode provider SPI. See {@link org.hibernate.bytecode}
+for details.
+
+
+Complete Hibernate documentation may be found online at http://docs.jboss.org/hibernate/.
+
+