diff --git a/bin/cdist-object-explorer-run b/bin/cdist-object-explorer-run
deleted file mode 100755
index 8bdf50ce..00000000
--- a/bin/cdist-object-explorer-run
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/sh
-#
-# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
-# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
-#
-# This file is part of cdist.
-#
-# cdist is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# cdist is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with cdist. If not, see .
-#
-#
-# Run the explorers for the given object on the target host.
-#
-
-. cdist-config
-[ $# -eq 2 ] || __cdist_usage " "
-set -eu
-
-__cdist_target_host="$1"; shift
-__cdist_object_self="$1"; shift
-
-__cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
-__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
-
-# Check if type of object has >= 1 explorer
-__cdist_has_explorer="$(__cdist_type_has_explorer "$__cdist_type")"
-# Run the type explorers for the current object if any
-if [ "$__cdist_has_explorer" ]; then
- if ! __cdist_type_explorer_pushed "$__cdist_type"; then
- src_dir="$(__cdist_type_explorer_dir "$__cdist_type")"
- dst_dir="$(__cdist_remote_type_explorer_dir "$__cdist_type")"
- __cdist_echo info "Transfering explorers for $__cdist_type "
- __cdist_dir push "$src_dir" "$dst_dir"
- __cdist_type_explorer_pushed_add "$__cdist_type"
- fi
-
- __cdist_echo info "Running explorers"
- # Copy object parameters
- __cdist_dir push \
- "$(__cdist_object_parameter_dir "$__cdist_object_self")" \
- "$(__cdist_remote_object_parameter_dir "$__cdist_object_self")"
-
- # Execute explorers
- cdist-run-remote "$__cdist_target_host" \
- "$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\"" \
- "$__cdist_name_var_object_id=\"$__cdist_object_id\"" \
- "$__cdist_name_var_self=\"$__cdist_object_self\"" \
- cdist-remote-explorer-run \
- "$__cdist_name_var_type_explorer" \
- "$(__cdist_remote_type_explorer_dir "$__cdist_type")" \
- "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")"
-
- # Copy back results
- __cdist_dir pull "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")" \
- "$(__cdist_object_type_explorer_dir "$__cdist_object_self")"
-fi
diff --git a/core/__cdist_object_explorer_run b/core/__cdist_object_explorer_run
new file mode 100755
index 00000000..f11c6786
--- /dev/null
+++ b/core/__cdist_object_explorer_run
@@ -0,0 +1,65 @@
+#!/bin/sh
+#
+# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
+# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
+#
+# This file is part of cdist.
+#
+# cdist is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# cdist is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with cdist. If not, see .
+#
+#
+# Run the explorers for the given object on the target host.
+#
+
+__cdist_object_explorer_run()
+{
+ __cdist_object_self="$1"; shift
+
+ __cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")"
+ __cdist_type="$(__cdist_type_from_object "$__cdist_object_self")"
+
+ # Check if type of object has >= 1 explorer
+ __cdist_has_explorer="$(__cdist_type_has_explorer "$__cdist_type")"
+ # Run the type explorers for the current object if any
+ if [ "$__cdist_has_explorer" ]; then
+ if ! __cdist_type_explorer_pushed "$__cdist_type"; then
+ # FIXME: variables!
+ src_dir="$(__cdist_type_explorer_dir "$__cdist_type")"
+ dst_dir="$(__cdist_remote_type_explorer_dir "$__cdist_type")"
+ __cdist_echo info "Transfering explorers for $__cdist_type "
+ __cdist_dir push "$src_dir" "$dst_dir"
+ __cdist_type_explorer_pushed_add "$__cdist_type"
+ fi
+
+ __cdist_echo info "Running explorers"
+ # Copy object parameters
+ __cdist_dir push \
+ "$(__cdist_object_parameter_dir "$__cdist_object_self")" \
+ "$(__cdist_remote_object_parameter_dir "$__cdist_object_self")"
+
+ # Execute explorers
+ cdist-run-remote "$__cdist_target_host" \
+ "$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\"" \
+ "$__cdist_name_var_object_id=\"$__cdist_object_id\"" \
+ "$__cdist_name_var_self=\"$__cdist_object_self\"" \
+ cdist-remote-explorer-run \
+ "$__cdist_name_var_type_explorer" \
+ "$(__cdist_remote_type_explorer_dir "$__cdist_type")" \
+ "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")"
+
+ # Copy back results
+ __cdist_dir pull "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")" \
+ "$(__cdist_object_type_explorer_dir "$__cdist_object_self")"
+ fi
+}
diff --git a/core/__cdist_object_prepare b/core/__cdist_object_prepare
index e2c682b1..53616487 100755
--- a/core/__cdist_object_prepare
+++ b/core/__cdist_object_prepare
@@ -38,7 +38,7 @@ __cdist_object_prepare()
__cdist_object_prepared="$(__cdist_object_prepared "$__cdist_object_self")"
if [ ! -f "$__cdist_object_prepared" ]; then
__cdist_echo info "Preparing object"
- cdist-object-explorer-run "$__cdist_target_host" "$__cdist_object_self"
+ __cdist_object_explorer_run "$__cdist_object_self"
cdist-object-manifest-run "$__cdist_target_host" "$__cdist_object_self"
# Mark this object as prepared