diff --git a/bin/cdist b/bin/cdist
index 84ebd5f2..57c889f1 100755
--- a/bin/cdist
+++ b/bin/cdist
@@ -645,6 +645,7 @@ def emulator():
       if object_id[0] == '/':
          object_id = object_id[1:]
 
+   # FIXME: verify object id
    log.debug(args)
 
    object_dir = os.path.join(global_dir, "object", type,
diff --git a/lib/cdist-type-emulator b/lib/cdist-type-emulator
deleted file mode 100755
index 8ff190ad..00000000
--- a/lib/cdist-type-emulator
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/bin/sh
-#
-# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
-#
-# 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 <http://www.gnu.org/licenses/>.
-#
-# 
-# Wrapper script that generates cconfig from arguments
-#
-# This script will be called everytime the manifest decides to create
-# a new type
-#
-
-. cdist-config
-set -u
-
-################################################################################
-# Prepare object and type
-#
-
-__cdist_type="$__cdist_myname"
-
-# Find out whether type is a singleton or regular type
-if [ -f "$(__cdist_type_singleton "$__cdist_type")" ]; then
-   __cdist_object_id="$__cdist_name_singleton"
-else
-   [ $# -ge 1 ] || __cdist_usage "<id> <options>"
-   __cdist_object_id="$1"; shift
-fi
-
-# Verify object id
-__cdist_object_id_sane=$(echo "$__cdist_object_id" | grep "^${__cdist_sane_regexp}\$")
-if [ -z "$__cdist_object_id_sane" ]; then
-   __cdist_usage "Insane object id, ${__cdist_object_id}."
-fi
-
-# Prevent double slash if id begins with /
-if [ "$(echo $__cdist_object_id | grep "^/")" ]; then
-   __cdist_object_self="${__cdist_type}${__cdist_object_id}"
-else
-   __cdist_object_self="${__cdist_type}/${__cdist_object_id}"
-fi
-################################################################################
-# Internal quirks
-#
-
-# Append id for error messages
-__cdist_myname="$__cdist_myname ($__cdist_object_id)"
-
-################################################################################
-# Create object in tmpdir first
-#
-
-# Save original destination
-__cdist_out_object_dir_orig="$__cdist_out_object_dir"
-
-# Store to tmp now
-__cdist_out_object_dir="$__cdist_tmp_dir"
-
-__cdist_new_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
-
-# Initialise object
-mkdir -p "${__cdist_new_object_dir}"
-
-# Record parameter
-__cdist_parameter_dir="$(__cdist_object_parameter_dir "$__cdist_object_self")"
-mkdir -p "${__cdist_parameter_dir}"
-
-while [ $# -gt 0 ]; do
-   opt="$1"; shift
-
-   echo "$opt" | grep -q "^--${__cdist_sane_regexp}\$" || \
-      __cdist_usage "Provide sane options"
-
-   opt_file="${opt#--}"
-
-   [ $# -ge 1 ] || __cdist_usage "Missing value for $opt"
-
-   value="$1"; shift
-
-   echo "${value}" > "${__cdist_parameter_dir}/${opt_file}"
-done
-
-# Record requirements
-# it's fine, if it's not set
-set +u
-for requirement in $require; do
-   echo $requirement >> "$(__cdist_object_require "$__cdist_object_self")"
-   __cdist_echo info "Recording requirement $requirement"
-done
-set -u
-
-################################################################################
-# Check newly created object
-#
-
-#
-# Ensure required parameters are given
-#
-if [ -f "$(__cdist_type_parameter_required "$__cdist_type")" ]; then
-   while read required; do
-      if [ ! -f "${__cdist_parameter_dir}/${required}" ]; then
-         __cdist_usage "Missing required parameter $required"
-      fi
-   done < "$(__cdist_type_parameter_required "$__cdist_type")"
-fi
-
-#
-# Ensure that only optional or required parameters are given
-#
-
-if [ -f "$(__cdist_type_parameter_optional "$__cdist_type")" ]; then
-   cat "$(__cdist_type_parameter_optional "$__cdist_type")" > \
-      "$__cdist_tmp_file"
-fi
- 
-if [ -f "$(__cdist_type_parameter_required "$__cdist_type")" ]; then
-   cat "$(__cdist_type_parameter_required "$__cdist_type")" >> \
-      "$__cdist_tmp_file"
-fi
-   
-cd "$__cdist_parameter_dir"
-for parameter in $(ls -1); do
-   is_valid=$(grep "^$parameter\$" "$__cdist_tmp_file")
-
-   [ "$is_valid" ] || __cdist_usage "Unknown parameter $parameter"
-done
-
-################################################################################
-# Merge object
-#
-# Restore original destination
-__cdist_out_object_dir="$__cdist_out_object_dir_orig"
-
-__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")"
-
-#
-# If the object already exists and is exactly the same, merge it. Otherwise fail.
-#
-if [ -e "${__cdist_object_dir}" ]; then
-   # Allow diff to fail
-   set +e
-   diff -ru "${__cdist_new_object_dir}/${__cdist_name_parameter}" \
-      "${__cdist_object_dir}/${__cdist_name_parameter}"           \
-      > "$__cdist_tmp_file"; ret=$?
-   set -e
-   
-   if [ "$ret" != 0 ]; then
-      # Go to standard error
-      exec >&2
-      echo "${__cdist_object_self} already exists differently."
-      echo "Recorded source(s):"
-      __cdist_object_source "${__cdist_object_dir}"
-      echo "Differences:"
-      cat "$__cdist_tmp_file"
-      __cdist_exit_err "Aborting due to object conflict."
-   fi
-else
-   #
-   # Move object into tree:
-   # Create full path minus .cdist and move .cdist
-   #
-   __cdist_new_object_base_dir="$(__cdist_object_base_dir "$__cdist_object_self")"
-   mkdir -p "$__cdist_new_object_base_dir"
-   mv "$__cdist_new_object_dir"  "$__cdist_new_object_base_dir"
-fi
-
-# Add "I was here message"
-__cdist_object_source_add "${__cdist_object_dir}"