diff --git a/conf/type/__process/explorer/cksum b/conf/type/__process/explorer/cksum
new file mode 100755
index 00000000..dcad99ba
--- /dev/null
+++ b/conf/type/__process/explorer/cksum
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# 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 .
+#
+#
+# Retrieve the md5sum of a file to be created, if it is already existing.
+#
+
+destination="/$__object_id"
+
+if [ -e "$destination" ]; then
+ if [ -f "$destination" ]; then
+ cksum < "$destination"
+ else
+ echo "NO REGULAR FILE"
+ fi
+else
+ echo "NO FILE FOUND, NO CHECKSUM CALCULATED."
+fi
diff --git a/conf/type/__process/explorer/exists b/conf/type/__process/explorer/exists
new file mode 100755
index 00000000..f8b85671
--- /dev/null
+++ b/conf/type/__process/explorer/exists
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# 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 .
+#
+#
+# Check whether file exists or not
+#
+
+destination="/$__object_id"
+
+if [ -e "$destination" ]; then
+ echo yes
+else
+ echo no
+fi
diff --git a/conf/type/__process/gencode-local b/conf/type/__process/gencode-local
new file mode 100755
index 00000000..1168919e
--- /dev/null
+++ b/conf/type/__process/gencode-local
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# 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 .
+#
+#
+# __file is a very basic type, which will probably be reused quite often
+#
+
+destination="/$__object_id"
+
+if [ -f "$__object/parameter/source" ]; then
+ source="$(cat "$__object/parameter/source")"
+
+ if [ -f "$source" ]; then
+ local_cksum="$(cksum < "$source")"
+ remote_cksum="$(cat "$__object/explorer/cksum")"
+
+ if [ "$local_cksum" != "$remote_cksum" ]; then
+ # FIXME: The username is ugly and hardcoded, replace after 1.0!
+ # Probably a better aproach is to have the user configured
+ # ~/.ssh/config to contain the right username
+ # Probably describe it in cdist-quickstart...
+ echo scp "$source" "root@${__target_host}:${destination}"
+ fi
+ else
+ echo "Source \"$source\" does not exist." >&2
+ exit 1
+ fi
+fi
diff --git a/conf/type/__process/gencode-remote b/conf/type/__process/gencode-remote
new file mode 100755
index 00000000..7c5cf7ce
--- /dev/null
+++ b/conf/type/__process/gencode-remote
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# 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 .
+#
+#
+# __file is a very basic type, which will probably be reused quite often
+#
+
+destination="/$__object_id"
+
+# No source? Create empty file
+if [ ! -f "$__object/parameter/source" ]; then
+ if [ no = "$(cat "$__object/explorer/exists")" ]; then
+ echo touch \"$destination\"
+ fi
+fi
+
+# Mode settings
+if [ -f "$__object/parameter/mode" ]; then
+ echo chmod \"$(cat "$__object/parameter/mode")\" \"$destination\"
+fi
+
+# Group
+if [ -f "$__object/parameter/group" ]; then
+ echo chgrp \"$(cat "$__object/parameter/group")\" \"$destination\"
+fi
+
+# Owner
+if [ -f "$__object/parameter/owner" ]; then
+ echo chown \"$(cat "$__object/parameter/owner")\" \"$destination\"
+fi
diff --git a/conf/type/__process/man.text b/conf/type/__process/man.text
new file mode 100644
index 00000000..67ab53d1
--- /dev/null
+++ b/conf/type/__process/man.text
@@ -0,0 +1,61 @@
+cdist-type__file(7)
+===================
+Nico Schottelius
+
+
+NAME
+----
+cdist-type__file - Create files
+
+
+DESCRIPTION
+-----------
+This cdist type allows you to create files on the target.
+
+
+REQUIRED PARAMETERS
+-------------------
+None.
+
+
+OPTIONAL PARAMETERS
+-------------------
+group::
+ Group to chgrp to.
+
+mode::
+ Unix permissions, suitable for chmod.
+
+owner::
+ User to chown to.
+
+source::
+ If supplied, copy this file from the host running cdist to the target.
+ If not supplied, an empty file or directory will be created.
+
+
+EXAMPLES
+--------
+
+--------------------------------------------------------------------------------
+# Create /etc/cdist-configured as an empty file
+__file /etc/cdist-configured
+
+# Use __file from another type
+__file /etc/issue --source "$__type/files/archlinux"
+
+# Supply some more settings
+__file /etc/shadow --source "$__type/files/shadow" \
+ --owner root --group shadow --mode 0640
+--------------------------------------------------------------------------------
+
+
+SEE ALSO
+--------
+- cdist-type(7)
+
+
+COPYING
+-------
+Copyright \(C) 2011 Nico Schottelius. Free use of this software is
+granted under the terms of the GNU General Public License version 3 (GPLv3).
diff --git a/conf/type/__process/parameter/optional b/conf/type/__process/parameter/optional
new file mode 100644
index 00000000..06120518
--- /dev/null
+++ b/conf/type/__process/parameter/optional
@@ -0,0 +1,4 @@
+group
+mode
+owner
+source