diff --git a/priv/basic.skel b/priv/basic.skel
index 8495b6d..b5f1d07 100644
--- a/priv/basic.skel
+++ b/priv/basic.skel
@@ -8,33 +8,27 @@
{dir, "{{appid}}/apps/{{appid}}/src/view"}.
{dir, "{{appid}}/apps/{{appid}}/src/view/layout"}.
{dir, "{{appid}}/apps/{{appid}}/src/view/lib"}.
-{dir, "{{appid}}/apps/{{appid}}/src/view/{{appid}}_index"}.
-{dir, "{{appid}}/apps/{{appid}}/src/view/{{appid}}_error"}.
+{dir, "{{appid}}/apps/{{appid}}/src/view/index"}.
+{dir, "{{appid}}/apps/{{appid}}/src/view/error"}.
+
{dir, "{{appid}}/apps/{{appid}}/src/view/lib/tag_html"}.
{dir, "{{appid}}/apps/{{appid}}/src/view/lib/tag_modules"}.
{dir, "{{appid}}/apps/{{appid}}/src/view/lib/filter_modules"}.
{dir, "{{appid}}/apps/{{appid}}/src/view/lib/custom_tags"}.
{dir, "{{appid}}/apps/{{appid}}/priv"}.
-{dir, "{{appid}}/apps/{{appid}}/priv/spa"}.
-{dir, "{{appid}}/apps/{{appid}}/priv/templates"}.
-
-{template, "basic/rebar2.config", "{{appid}}/apps/{{appid}}/rebar.config"}.
-{template, "basic/rebar1.config", "{{appid}}/apps/rebar.config"}.
-{template, "basic/rebar.config", "{{appid}}/rebar.config"}.
-{template, "basic/vm.args", "{{appid}}/vm.args"}.
-{template, "basic/sys.config", "{{appid}}/sys.config"}.
-{template, "basic/project.app.src", "{{appid}}/apps/{{appid}}/src/{{appid}}.app.src"}.
-{template, "basic/project.erl", "{{appid}}/apps/{{appid}}/src/{{appid}}.erl"}.
-{template, "basic/project_controller_index.erl", "{{appid}}/apps/{{appid}}/src/controller/index.erl"}.
-{template, "basic/project_controller_error.erl", "{{appid}}/apps/{{appid}}/src/controller/error.erl"}.
-{template, "basic/project_routes.erl", "{{appid}}/apps/{{appid}}/src/{{appid}}_routes.erl"}.
-{template, "basic/project.routes", "{{appid}}/apps/{{appid}}/priv/{{appid}}.routes"}.
-{file, "basic/project_view_layout_n2o.html", "{{appid}}/apps/{{appid}}/src/view/layout/n2o.html"}.
-{file, "basic/project_view_layout_page.html", "{{appid}}/apps/{{appid}}/src/view/layout/page.html"}.
-{file, "basic/project_view_index_hello.html", "{{appid}}/apps/{{appid}}/src/view/index/hello.html"}.
-{file, "basic/project_view_error_404.html", "{{appid}}/apps/{{appid}}/src/view/error/404.html"}.
-{file, "basic/project_priv_templates_index.html", "{{appid}}/apps/{{appid}}/priv/templates/index.html"}.
-{file, "basic/project_priv_static_synrc.css", "{{appid}}/apps/{{appid}}/priv/static/synrc.css"}.
-{file, "basic/project_priv_static_spa_index.htm", "{{appid}}/apps/{{appid}}/priv/static/spa/index.htm"}.
+{template,"basic/apps/project/priv/project.routes","{{appid}}/apps/{{appid}}/priv/{{appid}}.routes"}.
+{template,"basic/apps/project/rebar.config","{{appid}}/apps/{{appid}}/rebar.config"}.
+{template,"basic/apps/project/src/project.app.src","{{appid}}/apps/{{appid}}/src/{{appid}}.app.src"}.
+{template,"basic/apps/project/src/project.erl","{{appid}}/apps/{{appid}}/src/{{appid}}.erl"}.
+{template,"basic/apps/rebar.config","{{appid}}/apps/rebar.config"}.
+{template,"basic/rebar.config","{{appid}}/rebar.config"}.
+{template,"basic/sys.config", "{{appid}}/sys.config"}.
+{template,"basic/vm.args", "{{appid}}/vm.args"}.
+{file,"basic/apps/project/src/controller/error.erl", "{{appid}}/apps/{{appid}}/src/controller/error.erl"}.
+{file,"basic/apps/project/src/controller/index.erl", "{{appid}}/apps/{{appid}}/src/controller/index.erl"}.
+{file,"basic/apps/project/src/view/error/404.html", "{{appid}}/apps/{{appid}}/src/view/error/404.html"}.
+{file,"basic/apps/project/src/view/index/index.html","{{appid}}/apps/{{appid}}/src/view/index/index.html"}.
+{file,"basic/apps/project/src/view/layout/n2o.html", "{{appid}}/apps/{{appid}}/src/view/layout/n2o.html"}.
+{file,"basic/apps/project/src/view/layout/page.html","{{appid}}/apps/{{appid}}/src/view/layout/page.html"}.
diff --git a/priv/basic/apps/project/priv/project.routes b/priv/basic/apps/project/priv/project.routes
new file mode 100644
index 0000000..99a3f75
--- /dev/null
+++ b/priv/basic/apps/project/priv/project.routes
@@ -0,0 +1,34 @@
+[
+%% DISPATCH RULE: {"URL MATCH" , handler, opts()}
+
+%% cowboy static handler, here single file access.
+ { "/favicon.ico", cowboy_static, {priv_file, {{appid}}, "static/favicon.ico"}}
+
+%% naga static handler, support gz compression, just gzip your static file
+%% you need to keep uncompressed version and a compression version in your static folder, according to client capabiliti
+%% the according version will be serve either from disk or memory
+ ,{ "/n2o/[...]", naga_static, { dir, "deps/n2o/priv", [ { mimetypes, cow_mimetypes, all } ] }}
+ ,{ "/{{appid}}/static/[...]", naga_static, { dir, "deps/{{appid}}/priv", [ { mimetypes, cow_mimetypes, all } ] }}
+
+%% naga convenient handler.
+ ,{"/$v/[...]", naga_indexof, { {{appid}},view,"/$v"}}
+%,{"/$c/[...]", naga_indexof, { {{appid}},controller,"/$c"}}
+ ,{"/$s/[...]", naga_indexof, { {{appid}},static,"/$s"}}
+
+
+ %% YOUR RULES: dispatch {url/path}|code => application/controller/action
+ %% no support for regex in url/path
+ %% app is default alias for application
+ %% ctrl is default alias for controller
+ %% act is default alias for action
+ %% you can redefine alias add in naga config section using
+ %% {def_application, a},
+ %% {def_controller, c}
+ %% {def_action, ac} where a,c,ac are atom
+
+ ,{ "/index", [{app, {{appid}} },{ctrl, index},{action,index}], []}
+ ,{ "/", [{app, {{appid}} },{ctrl, index},{action,index},{id, 42}], []}
+
+ ,{ 404, [{application, {{appid}} },{controller, error}, {action, '404'}], []}
+ ,{ 500, [{application, {{appid}} },{controller, error}, {action, '500'}], []}
+].
diff --git a/priv/basic/rebar2.config b/priv/basic/apps/project/rebar.config
similarity index 100%
rename from priv/basic/rebar2.config
rename to priv/basic/apps/project/rebar.config
diff --git a/priv/basic/project_controller_error.erl b/priv/basic/apps/project/src/controller/error.erl
similarity index 100%
rename from priv/basic/project_controller_error.erl
rename to priv/basic/apps/project/src/controller/error.erl
diff --git a/priv/basic/apps/project/src/controller/index.erl b/priv/basic/apps/project/src/controller/index.erl
new file mode 100644
index 0000000..12cf89f
--- /dev/null
+++ b/priv/basic/apps/project/src/controller/index.erl
@@ -0,0 +1,14 @@
+-module(index).
+-export([index/3, event/1]).
+-default_action(index).
+-actions([index]).
+
+-include_lib("n2o/include/wf.hrl").
+-include_lib("nitro/include/nitro.hrl").
+-include_lib("naga/include/naga.hrl").
+
+index(<<"GET">>, _, _) ->
+ {ok, [{msg, "Hello World!!!!! "}]}.
+
+event(Event) ->
+ wf:info(?MODULE,"Unknown Event: ~p~n",[Event]).
\ No newline at end of file
diff --git a/priv/basic/project.app.src b/priv/basic/apps/project/src/project.app.src
similarity index 69%
rename from priv/basic/project.app.src
rename to priv/basic/apps/project/src/project.app.src
index 88e5adf..65f8ed0 100644
--- a/priv/basic/project.app.src
+++ b/priv/basic/apps/project/src/project.app.src
@@ -1,6 +1,6 @@
{application, {{appid}},
- [{description, "my awesome {{appid}} "},
- {vsn, "0.2"},
+ [{description, "{{desc}}"},
+ {vsn, "{{vsn}}"},
{registered, []},
{applications, [kernel, stdlib, naga]},
{mod, { {{appid}}, []}},
diff --git a/priv/basic/project.erl b/priv/basic/apps/project/src/project.erl
similarity index 100%
rename from priv/basic/project.erl
rename to priv/basic/apps/project/src/project.erl
diff --git a/priv/basic/project_view_error_404.html b/priv/basic/apps/project/src/view/error/404.html
similarity index 100%
rename from priv/basic/project_view_error_404.html
rename to priv/basic/apps/project/src/view/error/404.html
diff --git a/priv/basic/project_view_index_hello.html b/priv/basic/apps/project/src/view/index/index.html
similarity index 100%
rename from priv/basic/project_view_index_hello.html
rename to priv/basic/apps/project/src/view/index/index.html
diff --git a/priv/basic/project_view_layout_n2o.html b/priv/basic/apps/project/src/view/layout/n2o.html
similarity index 100%
rename from priv/basic/project_view_layout_n2o.html
rename to priv/basic/apps/project/src/view/layout/n2o.html
diff --git a/priv/basic/project_view_layout_page.html b/priv/basic/apps/project/src/view/layout/page.html
similarity index 100%
rename from priv/basic/project_view_layout_page.html
rename to priv/basic/apps/project/src/view/layout/page.html
diff --git a/priv/basic/rebar1.config b/priv/basic/apps/rebar.config
similarity index 100%
rename from priv/basic/rebar1.config
rename to priv/basic/apps/rebar.config
diff --git a/priv/basic/project.routes b/priv/basic/project.routes
deleted file mode 100644
index 35a0d6e..0000000
--- a/priv/basic/project.routes
+++ /dev/null
@@ -1,27 +0,0 @@
-[
-%% DISPATCH RULE: {"URL MATCH" , handler, opts()}
-
-%% cowboy static handler, here single file access.
- { "/favicon.ico", cowboy_static, {priv_file, {{appid}}, "static/favicon.ico"}}
-
-%% n2o static handler, very usefull in bundle application where the static file are keept in memory
- ,{ "/semantic/[...]", n2o_static, { dir, "deps/semantic_forms/priv", [ { mimetypes, cow_mimetypes, all } ] }}
- ,{ "/n2o/[...]", n2o_static, { dir, "deps/n2o/priv", [ { mimetypes, cow_mimetypes, all } ] }}
- ,{ "/naga/[...]", n2o_static, { dir, "deps/naga/priv", [ { mimetypes, cow_mimetypes, all } ] }}
-
-%% some naga convenient handler.
-%% ,{ "/$c/[...]", naga_indexof, [{ {{appid}}, controller}] } %% indexof controller
-%% ,{ "/$v/[...]", naga_indexof, [{ {{appid}}, view}] } %% indexof view
-
-%% Your Rest Api, your cowboy rest handler
-%% ,{ "/OAuth/2/OwnerToken/[...]", my_oauth2_owner_token, [yourOption] }
-%% ,{ "/OAuth/2/ClientToken/[...]", my_oauth2_client_token, [] }
-%% ,{ "/OAuth/2/AccessToken/[...]", my_oauth2_access_token, [] }
-
- %% YOUR RULES:
- ,{ "/index", [{application, {{appid}} },{controller, index },{action,index}], []}
- ,{ "/", [{application, {{appid}} },{controller, index},{action,index},{id, 42}], []}
-
- ,{ 404, [{application, {{appid}} },{controller, error}, {action, '404'}], []}
- ,{ 500, [{application, {{appid}} },{controller, error}, {action, '500'}], []}
-].
diff --git a/priv/basic/project/src/controller/error.erl b/priv/basic/project/src/controller/error.erl
new file mode 100644
index 0000000..66d0003
--- /dev/null
+++ b/priv/basic/project/src/controller/error.erl
@@ -0,0 +1,8 @@
+-module(error).
+-compile(export_all).
+-include_lib("n2o/include/wf.hrl").
+-include_lib("nitro/include/nitro.hrl").
+
+'404'(_, _, _) -> {ok, [{msg, "404 Not Found"}]}.
+
+event(Event) -> wf:info(?MODULE,"Unknown Event: ~p~n",[Event]).
diff --git a/priv/basic/project/src/controller/index.erl b/priv/basic/project/src/controller/index.erl
new file mode 100644
index 0000000..12cf89f
--- /dev/null
+++ b/priv/basic/project/src/controller/index.erl
@@ -0,0 +1,14 @@
+-module(index).
+-export([index/3, event/1]).
+-default_action(index).
+-actions([index]).
+
+-include_lib("n2o/include/wf.hrl").
+-include_lib("nitro/include/nitro.hrl").
+-include_lib("naga/include/naga.hrl").
+
+index(<<"GET">>, _, _) ->
+ {ok, [{msg, "Hello World!!!!! "}]}.
+
+event(Event) ->
+ wf:info(?MODULE,"Unknown Event: ~p~n",[Event]).
\ No newline at end of file
diff --git a/priv/basic/project/src/view/error/404.html b/priv/basic/project/src/view/error/404.html
new file mode 100644
index 0000000..260fcaf
--- /dev/null
+++ b/priv/basic/project/src/view/error/404.html
@@ -0,0 +1,4 @@
+{% extend "layout/page.html" %}
+{% block body %}
+{{msg}}
+{% endblock %}
diff --git a/priv/basic/project/src/view/index/index.html b/priv/basic/project/src/view/index/index.html
new file mode 100644
index 0000000..02961b5
--- /dev/null
+++ b/priv/basic/project/src/view/index/index.html
@@ -0,0 +1,14 @@
+{% extends "layout/page.html" %}
+
+{% block body %}
+ {{msg}}
+
+ {{_session_id}}
+
+ {{_app}}
+
+ {{_action}}
+
+ {{_controller}}
+{% endblock %}
+
diff --git a/priv/basic/project_priv_templates_index.html b/priv/basic/project/src/view/layout/n2o.html
similarity index 72%
rename from priv/basic/project_priv_templates_index.html
rename to priv/basic/project/src/view/layout/n2o.html
index 33e3e02..e8c4081 100644
--- a/priv/basic/project_priv_templates_index.html
+++ b/priv/basic/project/src/view/layout/n2o.html
@@ -1,20 +1,21 @@