diff --git a/tasks/_mergeimages.yml b/tasks/_mergeimages.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3a3b81a897aeacd730c7eec4dfd8874489c5a905
--- /dev/null
+++ b/tasks/_mergeimages.yml
@@ -0,0 +1,26 @@
+
+- name: detect architecture
+  set_fact: 
+     _linux_installer_arch: "x86_64"
+     _linux_installer_corefile: "corepure64.gz"
+  when: _linux_dist_arch == "x86_64" or  _linux_dist_arch == "amd64"
+
+- set_fact: 
+     _linux_installer_arch: "x86"
+     _linux_installer_corefile: "core.gz"
+  when: _linux_dist_arch == "x86" or (_linux_dist_arch | regex_search('i[0-9]86'))
+
+- name: download tiny core linux imagefs file
+  get_url:
+    url: "{{ '%s/%s/%s/release/distribution_files/%s' | format(linux_installer_home_mirror, linux_installer_version, _linux_installer_arch, _linux_installer_corefile) }}"
+    dest: "{{ '/tmp/%s' | format(_linux_installer_corefile) }}"
+
+- name: merge tiny core image with installer image
+  shell: "{{ 'cat /tmp/%s %s >/tmp/linux_%s_%s.gz' | format(_linux_installer_corefile, _linux_installer_image_file.path, linux_installer_distribution, _linux_dist_arch) }}"
+
+- name: register install image
+  include_role:
+    name: package.pxelinux
+    tasks_from: registerimage
+    vars:     
+      pxelinux_image_buildpath: "{{ '%s/mfsbsd-%s-RELEASE-%s.img' | format(mfsbsdroot, distdata[1], distdata[0]) }}"     pxelinux_image_distribution: "freebsd"     pxelinux_image_release: "{{ distdata[1] }}"     pxelinux_image_architecture: "{{ distdata[0] }}"
diff --git a/tasks/buildinstaller.yml b/tasks/buildinstaller.yml
new file mode 100644
index 0000000000000000000000000000000000000000..432f37ff7b4770a27d90fc81952fc65b35463d25
--- /dev/null
+++ b/tasks/buildinstaller.yml
@@ -0,0 +1,36 @@
+
+- name: create installer build root directory
+  tempfile:
+    state: directory
+  register: _linux_install_dir
+
+- name: publish installer build root
+  set_fact:
+    linux_build_installer_root: "{{ _linux_install_dir.path }}"  
+
+- name: create installers opt directory
+  file:
+    path: "{{ '%s/opt' | format(linux_build_installer_root) }}"
+    state: directory
+
+- name: create installers opt directory
+  file:
+    path: "{{ '%s/root' | format(linux_build_installer_root) }}"
+    state: directory
+
+- name: install basic installer scripts
+  copy:
+    src: profile
+    dest: "{{ '%s/root/.profile' | format(linux_build_installer_root) }}"
+
+- name: install basic installer scripts
+  copy:
+    src: "{{ _linux_install_file.name }}"
+    dest: "{{ '%s/opt/%s' | format(linux_build_installer_root, _linux_install_file.name) }}"
+    mode: "{{ _linux_install_file.mode }}"
+  loop:
+    - {"name": "bootlocal.sh", "mode": "0775" }
+  loop_control:
+    loop_var: _linux_install_file
+
+
diff --git a/tasks/finaliseinstaller.yml b/tasks/finaliseinstaller.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d8382d79b5f4755c454509678cdb8c96bb5fefe9
--- /dev/null
+++ b/tasks/finaliseinstaller.yml
@@ -0,0 +1,31 @@
+
+- name: create temporary linux installer image name
+  tempfile:
+    suffix: ".gz"
+  register: _linux_installer_image_file
+
+- name: compress linux installer
+  shell: "{{ 'find | cpio -o -H newc -R +0:+0 | gzip -2 > %s' | format(_linux_installer_image_file.path) }}"
+  args:
+    chdir: "{{ linux_build_installer_root }}"
+
+- include_role:
+     name: system.linux
+     tasks_from: _mergeimages
+  loop: "{{ system_supported_architectures[linux_installer_distribution] }}"   
+  loop_control:      
+    loop_var: _linux_dist_arch
+
+- name: cleanup installers build root directory
+  file:
+    path: "{{ linux_build_installer_root }}"
+    state: absent
+
+- name: cleanup compressed linux installer image
+  file:
+    path: "{{ _linux_installer_image_file.path }}"
+    state: absent
+
+- include_role:
+     name: system
+     tasks_from: installer
diff --git a/tasks/installer.yml b/tasks/installer.yml
new file mode 100644
index 0000000000000000000000000000000000000000..61fbad0a5702d3c27b8b21937281e8a4fea926a4
--- /dev/null
+++ b/tasks/installer.yml
@@ -0,0 +1,3 @@
+
+- include_tasks: buildinstaller.yml
+- include_tasks: finaliseinstaller.yml