diff --git a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java
index 5626615..bc3f937 100644
--- a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java
+++ b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java
@@ -370,6 +370,7 @@
         meta.addElement(m_manipulation);
         try {
             m_factory = new ComponentFactory(m_context, clazz, meta);
+            m_factory.start();
         } catch (ConfigurationException e) {
             throw new IllegalStateException("An exception occurs during factory initialization : " + e.getMessage());
         }
diff --git a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java
index f015735..b70057f 100644
--- a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java
+++ b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java
@@ -36,6 +36,26 @@
 public class Service {
     
     /**
+     * Creation strategy : singleton (default).
+     */
+    public static final int SINGLETON_STRATEGY = ProvidedService.SINGLETON_STRATEGY;
+    
+    /**
+     * Creation strategy : delegate on the static factory method.
+     */
+    public static final int STATIC_STRATEGY = ProvidedService.STATIC_STRATEGY;
+    
+    /**
+     * Creation strategy : one service object per instance.
+     */
+    public static final int INSTANCE_STRATEGY = ProvidedService.INSTANCE_STRATEGY;
+    
+    /**
+     * Creation strategy : one service object per bundle (OSGi service factory).
+     */
+    public static final int  SERVICE_STRATEGY = ProvidedService.SERVICE_STRATEGY;
+    
+    /**
      * The provided service specification. 
      */
     private List m_specifications; // null be default computed. 
diff --git a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/TemporalDependency.java b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/TemporalDependency.java
index 9344016..4f89295 100644
--- a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/TemporalDependency.java
+++ b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/TemporalDependency.java
@@ -26,6 +26,22 @@
  * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
  */
 public class TemporalDependency {
+    
+    /**
+     * OnTimeout policy: nullable object.
+     */
+    public static final String NULLABLE = "nullable";
+    
+    /**
+     * OnTimeout policy: empty array or collection.
+     */
+    public static final String EMPTY = "empty";
+    
+    /**
+     * OnTimeout policy: inject null.
+     */
+    public static final String NULL = "null";
+
 
     /**
      * The required specification.
@@ -141,6 +157,16 @@
     }
     
     /**
+     * Sets the dependency timeout.
+     * @param time the dependency timeout in ms
+     * @return the current dependency object
+     */
+    public TemporalDependency setTimeout(long time) {
+        m_timeout = new Long(time).toString();
+        return this;
+    }
+    
+    /**
      * Sets the dependency ontimeout policy.
      * Supports null, nullable, empty, and default-implementation.
      * In this latter case, you must specify the qualified class name
