diff --git a/install.bat b/install.bat
index dfd6bde9a9662be75bc748d8946c09b198f3b2c6..d3123bf3fd1bea62aa71042192d9505b4fea7982 100644
--- a/install.bat
+++ b/install.bat
@@ -4,6 +4,7 @@ echo Install Vitis App
 
 cd utils
 call init_tree.bat
+call copy_hooks.bat
 
 cd ../client/conf
 call npm install grunt --save
diff --git a/update.bat b/update.bat
new file mode 100644
index 0000000000000000000000000000000000000000..aebb4bae2ee929512e638ccf8773044b92345da3
--- /dev/null
+++ b/update.bat
@@ -0,0 +1,10 @@
+@echo off
+title Update Vitis App
+echo Update Vitis App
+
+call utils/update_tree.bat
+
+REM cd ../client/conf
+REM call grunt
+
+pause
diff --git a/utils/copy_hooks.bat b/utils/copy_hooks.bat
new file mode 100644
index 0000000000000000000000000000000000000000..a24ac68b0f099047b546b33d77a4fab3d99c0247
--- /dev/null
+++ b/utils/copy_hooks.bat
@@ -0,0 +1,3 @@
+
+
+robocopy "githooks" "../.git/hooks" /E /NFL /NDL /NJH /NJS /nc /ns /np
diff --git a/utils/init_tree.bat b/utils/init_tree.bat
index e715f136bfda1b88b79185b94fc27efd59a5315a..d8e6956ca21d8e9e7a4d4d46c77657f1153fb8b9 100644
--- a/utils/init_tree.bat
+++ b/utils/init_tree.bat
@@ -11,8 +11,11 @@ echo Create client directory
 if exist "client" (
   rmdir /S /Q "client"
 )
+echo copy client
 robocopy "src/vitis/client" "client" /E /NFL /NDL /NJH /NJS /nc /ns /np
+echo copy client/conf
 robocopy "conf" "client/conf" /E /NFL /NDL /NJH /NJS /nc /ns /np
+echo copy client/conf/closure
 robocopy "src/closure/conf" "client/conf/closure" /E /NFL /NDL /NJH /NJS /nc /ns /np
 
 echo Copy client modules
@@ -20,6 +23,7 @@ for /d %%g in ("src/module_*") do (
   set x=%%g
   echo !x:~7!
   if exist "src/%%g/module" (
+    echo copy client/modules/!x:~7!
     robocopy "src/%%g/module" "client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
 )
@@ -30,6 +34,7 @@ echo Create client directory
 if exist "vas" (
   rmdir /S /Q "vas"
 )
+echo copy vas
 robocopy "src/vitis/vas" "vas" /E /NFL /NDL /NJH /NJS /nc /ns /np
 
 echo Copy vas web_services
@@ -37,21 +42,31 @@ for /d %%g in ("src/module_*") do (
   set x=%%g
   echo !x:~7!
   if exist "src/%%g/web_service/conf" (
+    echo copy vas/rest/conf/!x:~7!
     robocopy "src/%%g/web_service/conf" "vas/rest/conf/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
   if exist "src/%%g/web_service/sql" (
+    echo copy vas/sql/!x:~7!
     robocopy "src/%%g/web_service/sql" "vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
   if exist "src/%%g/web_service/ws" (
+    echo copy vas/rest/ws/!x:~7!
     robocopy "src/%%g/web_service/ws" "vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
+  if exist "src/%%g/web_service/class" (
+    echo copy vas/rest/class
+    robocopy "src/%%g/web_service/class" "vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
   if exist "src/%%g/web_service/ws_data" (
+    echo copy vas/ws_data
     robocopy "src/%%g/web_service/ws_data" "vas/ws_data" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
   if exist "src/%%g/web_service/public" (
+    echo copy vas/public
     robocopy "src/%%g/web_service/public" "vas/public" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
   if exist "src/%%g/web_service/upload" (
+    echo copy vas/upload
     robocopy "src/%%g/web_service/upload" "vas/upload" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
 )
@@ -63,18 +78,22 @@ if exist %existing_path% (
   for %%G in (vas\server,vas\rest\conf,vas\log,vas\public,vas\shared,vas\tmp,vas\upload,vas\ws_data) do (
     echo %%G
     if exist %existing_path%\%%G (
+      echo copy %%G
       robocopy "%existing_path%\%%G" "%%G" /E /NFL /NDL /NJH /NJS /nc /ns /np
     )
   )
 
   if exist %existing_path%\client\conf\properties.json (
+    echo copy properties.json
     robocopy "%existing_path%\client\conf" "client\conf" "properties.json" /NFL /NDL /NJH /NJS /nc /ns /np
   )
   if exist %existing_path%\vas\rest\.htaccess (
+    echo copy .htaccess
     robocopy "%existing_path%\vas\rest" "vas\rest" ".htaccess" /NFL /NDL /NJH /NJS /nc /ns /np
   )
 
   if exist "%existing_path%\vas\rest\conf" (
+    echo copy vas\rest\conf
     robocopy "%existing_path%\vas\rest\conf" "vas\rest\conf" /E /NFL /NDL /NJH /NJS /nc /ns /np
   )
 )
diff --git a/utils/update_tree.bat b/utils/update_tree.bat
new file mode 100644
index 0000000000000000000000000000000000000000..a394a343afe3100f1a850fbc8c9a9a0318ab8495
--- /dev/null
+++ b/utils/update_tree.bat
@@ -0,0 +1,80 @@
+@echo off
+title Update Vitis tree
+echo Update Vitis tree
+setlocal EnableDelayedExpansion
+
+cd utils
+
+REM Pull repo
+"C:\Program Files\Git\bin\sh.exe" --login -i -c "git pull"
+
+REM Pull subtrees
+"C:\Program Files\Git\bin\sh.exe" --login -i -c "./pull_subtrees.sh"
+
+REM Save important files
+if exist "../vas/rest/sql" (
+  robocopy "../vas/rest/sql" "../vas/rest/sql_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+if exist "../vas/rest/conf" (
+  robocopy "../vas/rest/conf" "../vas/rest/conf_bak" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+
+REM Replace Vitis files
+for /d %%g in ("../src/vitis/client/*") do (
+  set x=%%g
+  echo copy client/!x!
+  rmdir /S /Q "../client/!x!"
+  robocopy "../src/vitis/client/!x!" "../client/!x!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/sql") do (
+  echo copy vas/sql
+  rmdir /S /Q "../vas/sql"
+  robocopy "../src/vitis/vas/sql" "../vas/sql" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/class") do (
+  echo copy vas/rest/class
+  rmdir /S /Q "../vas/rest/class"
+  robocopy "../src/vitis/vas/rest/class" "../vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/conf") do (
+  echo copy vas/rest/conf
+  robocopy "../src/vitis/vas/rest/conf" "../vas/rest/conf_veremes" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/inc") do (
+  echo copy vas/rest/inc
+  rmdir /S /Q "../vas/rest/inc"
+  robocopy "../src/vitis/vas/rest/inc" "../vas/rest/inc" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+for /d %%g in ("../src/vitis/vas/rest/ws") do (
+  echo copy vas/rest/ws
+  rmdir /S /Q "../vas/rest/ws"
+  robocopy "../src/vitis/vas/rest/ws" "../vas/rest/ws" /E /NFL /NDL /NJH /NJS /nc /ns /np
+)
+
+REM Replace modules files
+for /d %%g in ("../src/module_*") do (
+  set x=%%g
+  if exist "../src/%%g/module" (
+    echo copy client/modules/!x:~7!
+    robocopy "../src/%%g/module" "../client/modules/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/conf" (
+    echo copy vas/rest/conf_veremes/!x:~7!
+    robocopy "src/%%g/web_service/conf" "vas/rest/conf_veremes/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/sql" (
+    echo copy vas/sql/!x:~7!
+    robocopy "src/%%g/web_service/sql" "vas/sql/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/ws" (
+    echo copy vas/rest/ws/!x:~7!
+    robocopy "src/%%g/web_service/ws" "vas/rest/ws/!x:~7!" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+  if exist "src/%%g/web_service/class" (
+    echo copy vas/rest/class
+    robocopy "src/%%g/web_service/class" "vas/rest/class" /E /NFL /NDL /NJH /NJS /nc /ns /np
+  )
+)
+
+
+cd ..