diff --git a/roles/gpu/tasks/main.yml b/roles/gpu/tasks/main.yml
index a8b27eb740f04a153f025b88e5fe6cdbc57f610e..cdef9347e47802cef6d65d06c5698ddc198f906a 100644
--- a/roles/gpu/tasks/main.yml
+++ b/roles/gpu/tasks/main.yml
@@ -25,74 +25,89 @@
     - xorg-x11-proto-devel
     - xorg-x11-xkb-utils
 
-- name: Add nouveau from blacklist
-  lineinfile: 
-  args:
-    dest: /etc/modprobe.d/blacklist.conf 
-    line: "blacklist nouveau"  
-    state: present
-  sudo: true
+- name: install development tools
+  yum: name="@Development Tools" state=installed
+  become: true
+  become_user: root
 
-- name: Template disable-nouvear.conf 
-  template: dest=/etc/modprobe.d/disable-nouveau.conf src=disable-nouveau.conf.j2
-  sudo: true
-
-- name: Template nvidia.conf 
-  template: dest=/etc/modprobe.d/nvidia.conf src=nvidia.conf.j2
-  sudo: true
+- name: disable nouveau
+  template: src=blacklist-nouveau.conf.j2 dest=/etc/modprobe.d/blacklist-nouveau.conf
+  become: true
+  become_user: root
 
 - name: check nvidia driver
   shell: ls /usr/lib64/libnvidia-opencl.so.{{ nvidia_version }} 
-  register: has_been_compiled
+  register: drivers_installed
   ignore_errors: true
 
-- name: Copy boot file
-  template: src=grub.conf.j2 dest=/boot/grub/grub.conf 
-  sudo: true
+- name: get nvidia driver 
+  shell: wget http://consistency0/src/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run
+  args:
+    chdir: /tmp
+    creates: /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run
+  sudo: true 
+  when: drivers_installed | failed
 
-- name: Copy X config file
-  template: src=xorg.conf.j2 dest=/etc/X11/xorg.conf 
-  sudo: true
+#- name: Copy boot file
+#  template: src=grub.conf.j2 dest=/boot/grub/grub.conf 
+#  sudo: true
+#
+#- name: Copy X config file
+#  template: src=xorg.conf.j2 dest=/etc/X11/xorg.conf 
+#  sudo: true
 
 - name: Copy xserver file
   template: src=xserver.j2 dest=/etc/pam.d/xserver
   sudo: true
-  
+
+- name: look for nouveau
+  shell: /usr/sbin/lsmod
+  register: lsmod_output
+
+- name: set nouveau string
+  set_fact: nouveau='nouveau'
+
+
 - name: restart_host
-  command: shutdown -r now "Reboot triggered by Ansible"
-  async: 900
-  poll: 60
+  shell: sleep 5 ; shutdown -r now "Reboot triggered by Ansible"
+  async: 2
+  poll: 1
   sudo: true
   ignore_errors: true
-  when: has_been_compiled | failed
+  when: nouveau in lsmod_output.stdout
+
+- name: waiting for server to come back
+  local_action: wait_for host={{ ansible_host }} state=started port=22 delay=10 search_regex=OpenSSH
+  sudo: false
+  when: nouveau in lsmod_output.stdout
 
-- name: wait_restart
-  local_action: wait_for host="{{ inventory_hostname }}" port=22 delay=5 timeout=600
-  sudo: true 
-  when: has_been_compiled | failed
- 
-- name: get nvidia driver 
-  shell: wget http://us.download.nvidia.com/XFree86/Linux-x86_64/{{ nvidia_version }}/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run
-  args:
-    chdir: /tmp
-    creates: /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run
-  sudo: true 
-  when: has_been_compiled | failed
 
 - name: build nvidia driver 
-  shell: chmod 755 /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run; /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run --silent --kernel-source-path /usr/src/kernels/{{ kernel_version }}.el6.x86_64
+  shell: chmod 755 /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run; /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run --silent
   sudo: true
-  when: has_been_compiled | failed
+  when: drivers_installed | failed
 
-- name: set persistence mode 
-  lineinfile: 
-  args:
-    dest: /etc/rc.d/rc.local
-    line: "nvidia-smi --persistence-mode=1"  
-    state: present
+- name: restart_host
+  shell: sleep 5 ; shutdown -r now "Reboot triggered by Ansible"
+  async: 2
+  poll: 1
   sudo: true
+  ignore_errors: true
+  when: drivers_installed | failed
 
-- name: Load module
-  shell: modprobe nvidia
-  sudo: true
+- name: waiting for server to come back
+  local_action: wait_for host={{ ansible_host }} state=started port=22 delay=10 search_regex=OpenSSH
+  sudo: false
+  when: drivers_installed|failed
+
+#- name: set persistence mode 
+#  lineinfile: 
+#  args:
+#    dest: /etc/rc.d/rc.local
+#    line: "nvidia-smi --persistence-mode=1"  
+#    state: present
+#  sudo: true
+#- name: Load module
+#  shell: modprobe nvidia
+#  sudo: true
 
diff --git a/roles/gpu/templates/disable-nouveau.conf.j2 b/roles/gpu/templates/disable-nouveau.conf.j2
deleted file mode 100644
index 96993361f370408d6cb1e6fe227b69e63e0f4cab..0000000000000000000000000000000000000000
--- a/roles/gpu/templates/disable-nouveau.conf.j2
+++ /dev/null
@@ -1,3 +0,0 @@
-blacklist nouveau
-options nouveau modeset=0
-