diff --git a/bin/cdist b/bin/cdist
index 46422ce5..9eaf39fe 100755
--- a/bin/cdist
+++ b/bin/cdist
@@ -266,6 +266,11 @@ class Cdist:
       """Returns the remote dir to the object parameter"""
       return os.path.join(self.remote_object_dir(cdist_object), "parameter")
 
+   def object_code_paths(self, cdist_object):
+      """Return paths to code scripts of object"""
+      return [os.path.join(object_dir(cdist_object), "code-local"),
+              os.path.join(object_dir(cdist_object), "code-remote")]
+
    def list_objects(self, starting_point = False):
       """Return list of existing objects"""
 
@@ -285,6 +290,11 @@ class Cdist:
       """Return directory that holds the explorers of a type"""
       return os.path.join(TYPE_DIR, type, "explorer")
 
+   def type_gencode_paths(self, type):
+      """Return paths to gencode scripts of type"""
+      return [os.path.join(TYPE_DIR, type, "gencode-local"),
+              os.path.join(TYPE_DIR, type, "gencode-remote")]
+
    def type_manifest_path(self, type):
       """Return path to manifest of type"""
       return os.path.join(TYPE_DIR, type, "manifest")
@@ -390,7 +400,6 @@ class Cdist:
 
    def run_initial_manifest(self):
       """Run the initial manifest"""
-      # FIXME: add support for __manifest::
       env = {  "__manifest" : MANIFEST_DIR }
       self.run_manifest(self.initial_manifest, extra_env=env)
 
@@ -446,6 +455,26 @@ class Cdist:
 
       self.shell_run_or_debug_fail(manifest, [manifest], env=env)
 
+   def object_run(self, cdist_object, mode):
+      """Run gencode or code for an object"""
+         # FIXME: Check requirements and execute those before
+         requirements = list_object_requirements(cdist_object)
+         
+         for requirement in requirements:
+            object_run(requirement, mode=mode)
+
+         # Find and run all available gencode scripts
+         if mode == "gencode":
+            base_path = object_dir
+         if mode == "code":
+
+         # FIXME: to be implemented
+         # cdist-object-gencode-run   "$__cdist_target_host" "$__cdist_object_self"
+         # cdist-object-code-run      "$__cdist_target_host" "$__cdist_object_self"
+
+         self.run_type_explorer(cdist_object)
+         self.run_type_manifest(cdist_object)
+
 
    def deploy_to(self):
       """Mimic the old deploy to: Deploy to one host"""
@@ -470,14 +499,9 @@ class Cdist:
 
       # Now do the final steps over the existing objects
       for cdist_object in objects:
-         # FIXME: Check requirements and execute those before
+         object_run(cdist_object, mode="gencode")
+         object_run(cdist_object, mode="code")
 
-         # FIXME: to be implemented
-         # cdist-object-gencode-run   "$__cdist_target_host" "$__cdist_object_self"
-         # cdist-object-code-run      "$__cdist_target_host" "$__cdist_object_self"
-
-         self.run_type_explorer(cdist_object)
-         self.run_type_manifest(cdist_object)