diff --git a/src/main/webapp/users-guide/getting-started/what-is-smx4.conf b/src/main/webapp/users-guide/getting-started/what-is-smx4.conf
index ec887a6..7bcec3f 100644
--- a/src/main/webapp/users-guide/getting-started/what-is-smx4.conf
+++ b/src/main/webapp/users-guide/getting-started/what-is-smx4.conf
@@ -25,49 +25,75 @@
 ServiceMix includes many JBI components including HTTP, JMX, CXF, BPEL, etc.
 
 h3. OSGi for Dummies
-// TODO: write this bit
+[OSGi technology|http://www.osgi.org/About/Technology] is the dynamic module system for [Java|http://www.oracle.com/technetwork/java/index.html]. The OSGi Service Platform provides functionality to Java that makes Java the premier environment for software integration and thus for development. Java provides the portability that is required to support products on many different platforms. The OSGi technology provides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and deployed.
 
-h3. Kernel of ServiceMix
-// TODO: write this bit
+The OSGi Service Platform provides the functions to change the composition dynamically on the device of a variety of networks, without requiring restarts. To minimize the coupling, as well as make these couplings managed, the OSGi technology provides a service-oriented architecture that enables these components to dynamically discover each other for collaboration. The OSGi Alliance has developed many standard component interfaces for common functions like HTTP servers, configuration, logging, security, user administration, XML and many more. Plug-compatible implementations of these components can be obtained from different vendors with different optimizations and costs. However, service interfaces can also be developed on a proprietary basis.
+
+OSGi technology adopters benefit from improved time-to-market and reduced development costs because OSGi technology provides for the integration of pre-built and pre-tested component subsystems. The technology also reduces maintenance costs and enables unique new aftermarket opportunities because components can be dynamically delivered to devices in the field.
+
+For more information, check out the [OSGi Alliance website|http://www.osgi.org/Main/HomePage]
+
+h3. Powered by Apache Karaf
+Apache ServiceMix is based on [Apache Karaf|http://karaf.apache.org/]. Apache Karaf is a small [OSGi-based|http://www.osgi.org/Main/HomePage] runtime which provides a lightweight container onto which various components and applications can be deployed.
+
+Here is a short list of features supported by the Karaf:
+
+Hot deployment: Karaf supports hot deployment of OSGi bundles by monitoring jar files inside the $home/deploy directory. Each time a jar is copied in this folder, it will be installed inside the runtime. You can then update or delete it and changes will be handled automatically. In addition, the Karaf also supports exploded bundles and custom deployers (blueprint and spring ones are included by default).
+
+Dynamic configuration: Services are usually configured through the ConfigurationAdmin OSGi service. Such configuration can be defined in Karaf using property files inside the $home/etc directory. These configurations are monitored and changes on the properties files will be propagated to the services.
+
+Logging System: using a centralized logging back end supported by Log4J, Karaf supports a number of different APIs (JDK 1.4, JCL, SLF4J, Avalon, Tomcat, OSGi)
+
+Provisioning: Provisioning of libraries or applications can be done through a number of different ways, by which they will be downloaded locally, installed and started.
+
+Native OS integration: Karaf can be integrated into your own Operating System as a service so that the lifecycle will be bound to your Operating System.
+
+Extensible Shell console: Karaf features a nice text console where you can manage the services, install new applications or libraries and manage their state. This shell is easily extensible by deploying new commands dynamically along with new features or applications.
+
+Remote access: use any SSH client to connect to Karaf and issue commands in the console 
+
+Security framework based on JAAS
+
+Managing instances: Karaf provides simple commands for managing multiple instances. You can easily create, delete, start and stop instances of Karaf through the console.
+
+For more information, check out the [Apache Karaf project page|http://karaf.apache.org/]
 
 h3. JBI Container &amp; Integration with OSGI
 // TODO: write this bit
 
-h3. Normalized Message Router</title>
-// TODO: write this bit
+h3. Normalized Message Router
+The Normalized Message Router (NMR) is a general-purpose message bus used for communication between bundles in the OSGi container.
+It's modeled after the Normalized Message Router (NMR) defined in the Java Business Integration (JBI) specification ([http://www.jcp.org/en/jsr/detail?id=208]).
 
-h3. Camel
-// TODO: write this bit
+It can be used to transport XML messages as well as other message body types, optionally augumented with headers and attachments.
+
+For more information, check out the [Using the Normalized Message Router User Guide|../nmr/index.html]
+
+h3. Apache Camel
+Apache Camel is a powerful open source integration framework based on known [Enterprise Integration Patterns|http://camel.apache.org/enterprise-integration-patterns.html] with powerful [Bean Integration|http://camel.apache.org/bean-integration.html].
+
+Apache Camel lets you create the [Enterprise Integration Patterns|http://camel.apache.org/enterprise-integration-patterns.html] to implement routing and mediation rules in either a Java based [Domain Specific Language (or Fluent API)|http://camel.apache.org/dsl.html], via [Spring based Xml Configuration|http://camel.apache.org/spring.html] files or via the [Scala DSL|http://camel.apache.org/scala-dsl.html].
+
+For more information, check out the [Using Apache Camel in ServiceMix User Guide|../camel/index.html].
 
 h3. Services proposed
 // TODO: write this bit
 
-h4. Queuing engine : Apache ActiveMq
-// TODO: write this bit
+h4. Message Broker : Apache ActiveMQ
+Apache ServiceMix ships with an embedded instance of [Apache ActiveMQ|http://activemq.apache.org] out-of-the-box.
+
+It is a fully functional Apache ActiveMQ message broker instance listening for [TCP|http://activemq.apache.org/openwire.html] connections on port 61616 and [STOMP|http://activemq.apache.org/stomp.html] connections on port 61613.
+
+The [default configuration for the Apache ActiveMQ|http://activemq.apache.org/xml-configuration.html] message broker resides in the ServiceMix installation directory under the etc sub-directory. The ActiveMQ configuration file is named activemq-broker.xml. It's configured with reasonable default information like [Persistence (KahaDB)|http://activemq.apache.org/persistence.html] and [Producer Flow Control|http://activemq.apache.org/producer-flow-control.html] (essentially to make sure the broker does not run out of memory).
+
+The configuration file also makes use of a reusable connection pool available to all OSGi bundles exposing a [javax.jms.ConnectionFactory|http://docs.oracle.com/javaee/1.4/api/javax/jms/ConnectionFactory.html] as a service for consumption. You can re-use this connection pool via tools such as [spring-dm or blueprint|http://activemq.apache.org/osgi-integration.html].
+
+The ActiveMQ message broker allows several components such as servicemix-cluster, [camel-jms|http://camel.apache.org/jms.html], [camel-activemq|http://camel.apache.org/activemq.html], [cxf-jms transport|http://cxf.apache.org/docs/jms-transport.html] to be utilized without any additional configuration.
 
 h4. Transaction : Geronimo Transaction Manager
 // TODO: write this bit
 
 h4. Routing and Mediation : Apache Camel
-An Apache ServiceMix default installation out of the box embeds an Apache ActiveMQ instance.
-It is a fully functional activeMQ instance listening for
-
-  * TCP on port 61616
-  * STOMP on port 61613
-
-The default configuration resides in the etc directory under your servicemix installation,
-the file in question is called activemq-broker.xml. It sets up reasonable defaults for
-
-* Persistence - KahaDB
-* Producer flow control - essentially to make sure the broker does not run out of memory
-
-The file also configures a reusable connection pool available to all OSGi bundles exposing a
-javax.jms.ConnectionFactory as a service for consumption.
-
-You can re-use this connection pool via tools such as spring-dm or blueprint.
-
-The ActiveMQ broker allows several components such as servicemix-cluster, camel-jms, camel-activemq,
-cxf jms transport to be utilized without any additional effort.
 
 h4. Web Services : Apache CXF
 // TODO: write this bit
