diff --git a/classes/BasicSpecialFunction.php b/classes/BasicSpecialFunction.php
index e87f2c97c553a833042ee73c370bf5f733a46e9d..6a3fc28fcce06f485042f7b8dbd44496e4500d10 100644
--- a/classes/BasicSpecialFunction.php
+++ b/classes/BasicSpecialFunction.php
@@ -6,7 +6,7 @@ class SpecialFunction extends AbstractSpecialFunction{
   protected function getFunction($uri){
   	global $conf;
   	$count = 1;
-  	$prefixUri = $conf['basedir'].$conf['special']['uri']."/";
+  	$prefixUri = $conf['basedir'];
   	$aux = str_replace($prefixUri, '', $uri, $count);
   	$functionAndParams = explode('/', $aux);
   	return $functionAndParams[0];
@@ -15,7 +15,7 @@ class SpecialFunction extends AbstractSpecialFunction{
   protected function getParams($uri){
   	global $conf;
   	$count = 1;
-  	$prefixUri = $conf['basedir'].$conf['special']['uri'];
+  	$prefixUri = $conf['basedir'];
   	$functionAndParams = explode('/', str_replace($prefixUri, '', $uri, $count));
   	if(sizeof($functionAndParams) > 1){
   	  array_shift($functionAndParams);
@@ -38,10 +38,10 @@ class SpecialFunction extends AbstractSpecialFunction{
   	$extension = Utils::getExtension($acceptContentType); 
   	$args = array();
   	try{
-  	  $viewFile = $conf['special']['uri'].".".$f.$conf['view']['extension'].".".$extension;
-  	  $modelFile = $conf['special']['uri'].".".$f.$conf['model']['extension'].".".$extension;
+  	  $viewFile = $conf['service']['prefix'].$f."/".$extension.".template";
+  	  $modelFile = $conf['service']['prefix'].$f."/".$extension.".queries";
   	  if(!(is_dir($conf['model']['directory'].$modelFile) || is_file($conf['model']['directory'].$modelFile))){
-  	  	$msg = '<h1>Method does not exist!</h1><br/>This means that <tt>'.$conf['model']['directory'].$modelFile."</tt> doesn't exist.<br/>Please refer to this tutorial to create one.<br/>";
+  	  	$msg = '<h1>Method does not exist!</h1><br/>This means that <tt>'.$modelFile."</tt> doesn't exist.<br/>Please refer to this tutorial to create one.<br/>";
   	  	throw new Exception($msg);
   	  }
   	  if(!is_file($conf['view']['directory'].$viewFile)){
diff --git a/classes/Utils.php b/classes/Utils.php
index eaf6767e91a41aa587866a58cde53cdfaaa06aaa..855d77835d69d9d918b7499008db5967cd8c4ee3 100644
--- a/classes/Utils.php
+++ b/classes/Utils.php
@@ -18,7 +18,7 @@ class Utils{
   
   public static function send406($uri){
   	header("HTTP/1.0 406 Not Acceptable");
-  	echo "I can't find a representation suitable for the content type you accept\n\n";
+  	echo "LODSPeaKr can't find a representation suitable for the content type you accept\n\n";
   	exit(0);
   }
   
@@ -287,7 +287,8 @@ class Utils{
   	global $first;
   	$uri = $base['this']['value'];
   	$data = array();
-  	
+  	$strippedModelFile = str_replace('.query', '',$modelFile); 	  
+
   	
  	if(!is_dir($modelFile)){
   	  require_once($conf['home'].'lib/Haanga/lib/Haanga.php');
@@ -315,25 +316,25 @@ class Utils{
   	  	echo $query;
   	  }
   	  trigger_error("Running query on endpoint", E_USER_NOTICE);
-  	  $aux = $e->query($query, Utils::getResultsType($query));  	  
+  	  $aux = $e->query($query, Utils::getResultsType($query)); 
   	  if($modelFile != $base['type']){
-  	  	if(!isset($rPointer[$modelFile])){
-  	  	  $rPointer[$modelFile] = array();
-  	  	  $first[$modelFile] = array();
+  	  	if(!isset($rPointer[$strippedModelFile])){
+  	  	  $rPointer[$strippedModelFile] = array();
+  	  	  $first[$strippedModelFile] = array();
   	  	}
   	  	if(Utils::getResultsType($query) == $conf['output']['select']){
-  	  	  $rPointer[$modelFile] = Utils::sparqlResult2Obj($aux);
-  	  	  $fPointer[$modelFile] = $rPointer[$modelFile][0];
+  	  	  $rPointer[$strippedModelFile] = Utils::sparqlResult2Obj($aux);
+  	  	  $fPointer[$strippedModelFile] = $rPointer[$strippedModelFile][0];
   	  	  /*if(sizeof($rPointer)>0){
   	  	  $rPointer[$modelFile]['first'] = $rPointer[$modelFile][0];
   	  	  }*/
   	  	}else{
-  	  	  $rPointer[$modelFile] = $aux;
+  	  	  $rPointer[$strippedModelFile] = $aux;
   	  	}
   	  }else{
   	  	if(Utils::getResultsType($query) == $conf['output']['select']){
   	  	  $rPointer = Utils::sparqlResult2Obj($aux);
-  	  	  $fPointer[$modelFile] = $rPointer[0];
+  	  	  $fPointer[$strippedModelFile] = $rPointer[0];
   	  	  /*if(sizeof($rPointer)>0){
   	  	  $rPointer['first'] = $rPointer[0];
   	  	  }*/
@@ -342,12 +343,12 @@ class Utils{
   	  	}  	 
   	  }
   	}else{
-  	  trigger_error("$modelFile is a directory, will process it later", E_USER_NOTICE);  	  
+  	  trigger_error("$modelFile is a directory, will process it later", E_USER_NOTICE);
   	  if($modelFile != $base['type']){
-  	  	if(!isset($rPointer[$modelFile])){
-  	  	  $rPointer[$modelFile] = array();
+  	  	if(!isset($rPointer[$strippedModelFile])){
+  	  	  $rPointer[$strippedModelFile] = array();
   	  	}
-  	  	Utils::queryDir($modelFile, $rPointer[$modelFile], $fPointer[$modelFile]);
+  	  	Utils::queryDir($modelFile, $rPointer[$strippedModelFile], $fPointer[$strippedModelFile]);
   	  }else{
   	  	Utils::queryDir($modelFile, $rPointer, $fPointer);
   	  }
@@ -409,7 +410,7 @@ class Utils{
   	unset($base['first']);
   	$vars = compact('base', 'r', 'first');
  	if($conf['debug']){
- 	  var_dump($vars); 	
+ 	  var_dump($r); 	
  	}
 	if(is_file($base['view']['directory'].$view)){
 	  Haanga::Load($view, $vars);
diff --git a/common.inc.php b/common.inc.php
index 5579e1a7b535677fc8a3b043147a65079391046c..eaf3f2574e2265e642031a995e7da4ae0dc037f5 100644
--- a/common.inc.php
+++ b/common.inc.php
@@ -32,8 +32,8 @@ $conf['http_accept']['json'] = array('application/json', 'application/x-javascri
 $conf['http_accept']['nt']   = array('text/plain');
 
 
-$conf['special']['uri'] = 'special';
-$conf['special']['class'] = 'classes/BasicSpecialFunction.php';
+$conf['service']['prefix'] = 'service.';
+$conf['service']['class'] = 'classes/BasicSpecialFunction.php';
 
 //Frontpage when user goes to http://example.org/
 $conf['root'] = 'index.html';
diff --git a/models/class.rdfs:Resource/html.queries/main.query b/models/class.rdfs:Resource/html.queries/main.query
new file mode 100644
index 0000000000000000000000000000000000000000..107b0b99b6106b2b56b3292423c6824477325017
--- /dev/null
+++ b/models/class.rdfs:Resource/html.queries/main.query
@@ -0,0 +1,7 @@
+SELECT ?s2 ?p2 ?s1 ?p1  WHERE {
+        {
+                <{{uri}}> ?s1 ?p1 .
+        }UNION{
+                ?s2 ?p2 <{{uri}}> .
+        }
+}
diff --git a/models/class.rdfs:Resource/json.queries/main.query b/models/class.rdfs:Resource/json.queries/main.query
new file mode 100644
index 0000000000000000000000000000000000000000..fbb7078a7f79be8481dba37143d62038ef36366d
--- /dev/null
+++ b/models/class.rdfs:Resource/json.queries/main.query
@@ -0,0 +1,3 @@
+DESCRIBE ?resource WHERE {
+  	[] a ?resource .
+}
diff --git a/models/class.rdfs:Resource/nt.queries/main.query b/models/class.rdfs:Resource/nt.queries/main.query
new file mode 100644
index 0000000000000000000000000000000000000000..fbb7078a7f79be8481dba37143d62038ef36366d
--- /dev/null
+++ b/models/class.rdfs:Resource/nt.queries/main.query
@@ -0,0 +1,3 @@
+DESCRIBE ?resource WHERE {
+  	[] a ?resource .
+}
diff --git a/models/class.rdfs:Resource/rdf.queries/main.query b/models/class.rdfs:Resource/rdf.queries/main.query
new file mode 100644
index 0000000000000000000000000000000000000000..fbb7078a7f79be8481dba37143d62038ef36366d
--- /dev/null
+++ b/models/class.rdfs:Resource/rdf.queries/main.query
@@ -0,0 +1,3 @@
+DESCRIBE ?resource WHERE {
+  	[] a ?resource .
+}
diff --git a/models/class.rdfs:Resource/ttl.queries/main.query b/models/class.rdfs:Resource/ttl.queries/main.query
new file mode 100644
index 0000000000000000000000000000000000000000..fbb7078a7f79be8481dba37143d62038ef36366d
--- /dev/null
+++ b/models/class.rdfs:Resource/ttl.queries/main.query
@@ -0,0 +1,3 @@
+DESCRIBE ?resource WHERE {
+  	[] a ?resource .
+}
diff --git a/models/rdfs:Resource.model.html b/models/rdfs:Resource.model.html
deleted file mode 100644
index 5e8f44e2f6e46c5d1bb4858707c27526d1b5e405..0000000000000000000000000000000000000000
--- a/models/rdfs:Resource.model.html
+++ /dev/null
@@ -1,8 +0,0 @@
-SELECT ?s2 ?p2 ?s1 ?p1  WHERE {
-	{
-		<{{uri}}> ?s1 ?p1 .
-	}UNION{
-		?s2 ?p2 <{{uri}}> .
-	}
-}
-
diff --git a/models/rdfs:Resource.model.rdf b/models/rdfs:Resource.model.rdf
deleted file mode 100644
index 61df9dc82ae823fb1ebafe746788f4ebecb6f20c..0000000000000000000000000000000000000000
--- a/models/rdfs:Resource.model.rdf
+++ /dev/null
@@ -1 +0,0 @@
-DESCRIBE <{{uri}}>
diff --git a/models/special.classes.model.html b/models/service.classes/html.queries/main.query
similarity index 100%
rename from models/special.classes.model.html
rename to models/service.classes/html.queries/main.query
diff --git a/models/special.instances.model.html b/models/special.instances.model.html
deleted file mode 100644
index d7de13cc16c4e8ec8619293db9b4a9cf8a1a76fb..0000000000000000000000000000000000000000
--- a/models/special.instances.model.html
+++ /dev/null
@@ -1,6 +0,0 @@
-{%for h in base.header %}
-PREFIX {{h.prefix}}: <{{h.ns}}> 
-{%endfor%}
-SELECT DISTINCT ?resource WHERE {
-  	?resource a {{base.args.arg0}} .
-}
diff --git a/models/special.namedGraphs.model.html b/models/special.namedGraphs.model.html
deleted file mode 100644
index b73ae66e3f2a16aed3d8342b2b913e4984f7885a..0000000000000000000000000000000000000000
--- a/models/special.namedGraphs.model.html
+++ /dev/null
@@ -1,5 +0,0 @@
-SELECT DISTINCT ?g WHERE {
-  GRAPH ?g{
-  	?s ?p ?o .
-  }
-}
diff --git a/modules/classModule.php b/modules/classModule.php
index 68ab226636ba6aceabc3d8d1b5aef529c1a17552..3348c78d90616618568d28293bec39a5cf70b406 100644
--- a/modules/classModule.php
+++ b/modules/classModule.php
@@ -38,6 +38,8 @@ class ClassModule extends abstractModule{
   	global $acceptContentType;
   	global $endpoints;
   	global $base;
+  	global $results;
+  	global $first;
   	list($res, $page, $format) = $pair;
   	//If resource is not the page, send a 303 to the document
   	if($res == $localUri){
@@ -75,7 +77,7 @@ class ClassModule extends abstractModule{
   	
   	
   	chdir($conf['home'].$conf['model']['directory']);
-//  	echo $conf['home'].$conf['model']['directory'].$modelFile;exit(0);
+  	
   	Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
   	$results = Utils::internalize($results); 
 
@@ -92,17 +94,14 @@ class ClassModule extends abstractModule{
   
   private static function getModelandView($t, $extension){  	
   	global $conf;
+  	global $results;
+  	global $rPointer;
   	//Defining default views and models
   	$curieType="";
-  	$modelFile = $conf['model']['default'].$conf['model']['extension'].".".$extension;
-  	$viewFile = $conf['view']['default'].$conf['view']['extension'].".".$extension;
+  	$modelFile = 'class.rdfs:Resource/'.$extension.'.queries';
+  	$viewFile = 'class.rdfs:Resource/'.$extension.'.template';
   	
   	//Get the first class available
-  	/* TODO: Allow user to priotize 
-  	* which class should be used
-  	* Example: URI is foaf:Person and ex:Student
-  	*          If both, prefer ex:Student
-  	*/
   	$typesAndValues = array();
   	foreach($t as $v){
   	  $curie = Utils::uri2curie($v);
diff --git a/modules/serviceModule.php b/modules/serviceModule.php
index 695229fe147559c6cea082ac9dad296bc7cb7558..7e2e08656ffac4c0a801cc3c353608bd3350fcc4 100644
--- a/modules/serviceModule.php
+++ b/modules/serviceModule.php
@@ -4,18 +4,40 @@ class ServiceModule extends abstractModule{
   //Service module
   
   public function match($uri){
-  	global $conf;  	
-  	return preg_match("|^".$conf['basedir'].$conf['special']['uri']."|", $uri);
+  	global $conf; 
+  	global $acceptContentType;
+ 	
+  	$q = preg_replace('|^'.$conf['basedir'].'|', '', $uri);
+  	$qArr = explode('/', $q);
+  	if(sizeof($qArr)==0){
+  	  return FALSE;
+  	}
+  	$extension = Utils::getExtension($acceptContentType); 
+  	$auxViewFile  = $conf['home'].$conf['view']['directory'].$conf['service']['prefix'].$qArr[0]."/".$extension.".template";
+  	$auxModelFile = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0]."/".$extension.".queries";
+  	if(is_dir($auxModelFile) && is_file($auxViewFile)){
+  	  return $uri;// $qArr[0];
+  	}
+  	$auxViewFile  = $conf['home'].$conf['view']['directory'].$conf['service']['prefix'].$qArr[0];
+  	$auxModelFile = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0];
+  	if(is_dir($auxModelFile) && is_dir($auxViewFile)){
+  	  Utils::send406($uri);// $qArr[0];
+  	}
+  	if(is_dir($auxModelFile) && is_file($auxViewFile)){
+  	  return $uri;// $qArr[0];
+  	}
+
+  	return FALSE;
   }
   
-  public function execute($pair){
+  public function execute($service){
   	global $conf;
   	global $localUri;
   	global $uri;
   	global $acceptContentType;
   	global $endpoints;
   	global $base;
-  	require_once($conf['home'].$conf['special']['class']);
+  	require_once($conf['home'].$conf['service']['class']);
   	$context = array();
   	$context['contentType'] = $acceptContentType;
   	$context['endpoints'] = $endpoints;
diff --git a/views/rdfs:Resource.view.html b/views/class.rdfs:Resource/html.template
similarity index 93%
rename from views/rdfs:Resource.view.html
rename to views/class.rdfs:Resource/html.template
index 59f3631899154cb32d0456a682340ac5adfff40f..2cd8b212289059e162fb8c58b6c688b7739f9368 100644
--- a/views/rdfs:Resource.view.html
+++ b/views/class.rdfs:Resource/html.template
@@ -11,32 +11,32 @@
     <link rel="alternate" type="text/plain" title="N-Triples Version" href="{{base.this.value}}.nt" />
     <link rel="alternate" type="application/json" title="RDFJSON Version" href="{{base.this.value}}.json" />
   </head>
-  <body about="{{base.this.value}}"> 
+  <body about="{{base.this.value}}">
     <h1>Page about <a href='{{base.this.value}}'>{{base.this.curie}}</a></h1>
   <div>
     <h2>Information from {{base.this.curie}}</h2>
-    <table> 
-    {% for row in r %}
+    <table>
+    {% for row in r.main %}
 
       {% if row.s1%}
       <tr>
         <td><a href='{{row.s1.value}}'>{{row.s1.curie}}</a></td>
-    
+
         {% if row.p1.uri == 1 %}
         <td><a rel='{{row.s1.curie}}' href='{{row.p1.value}}'>{{row.p1.curie}}</a></td>
         {% else %}
         <td><span property='{{row.s1.curie}}'>{{row.p1.value}}</span></td>
         {% endif %}
-     
+
         </tr>
       {% endif %}
     {% endfor %}
     </table>
-    
+
     <br/><br/>
     <h2>Information pointing to {{base.this.curie}}</h2>
-    <table> 
-    {% for row in r %}
+    <table>
+    {% for row in r.main %}
       {% if row.s2%}
      <tr>
         <td><a href='{{row.s2.value}}'>{{row.s2.curie}}</a></td>
@@ -48,4 +48,3 @@
     </div>
   </body>
 </html>
-
diff --git a/views/class.rdfs:Resource/json.template b/views/class.rdfs:Resource/json.template
new file mode 100644
index 0000000000000000000000000000000000000000..f6451d60b03e01731a9e01adfacf9c9cbdc5cfda
--- /dev/null
+++ b/views/class.rdfs:Resource/json.template
@@ -0,0 +1 @@
+{{r.main|safe}}
diff --git a/views/rdfs:Resource.view.rdf b/views/class.rdfs:Resource/nt.template
similarity index 100%
rename from views/rdfs:Resource.view.rdf
rename to views/class.rdfs:Resource/nt.template
diff --git a/views/class.rdfs:Resource/rdf.template b/views/class.rdfs:Resource/rdf.template
new file mode 100644
index 0000000000000000000000000000000000000000..f6451d60b03e01731a9e01adfacf9c9cbdc5cfda
--- /dev/null
+++ b/views/class.rdfs:Resource/rdf.template
@@ -0,0 +1 @@
+{{r.main|safe}}
diff --git a/views/class.rdfs:Resource/ttl.template b/views/class.rdfs:Resource/ttl.template
new file mode 100644
index 0000000000000000000000000000000000000000..ca994557126054d192c1e40eca4f28f5e635bab8
--- /dev/null
+++ b/views/class.rdfs:Resource/ttl.template
@@ -0,0 +1 @@
+{{r|safe}}
diff --git a/views/special.classes.view.html b/views/service.classes/html.template
similarity index 72%
rename from views/special.classes.view.html
rename to views/service.classes/html.template
index 8a7777fe863303235d9f846e0be11cfbb70b9f00..dac4c802940d35494e891f008e41b28fbd4806d8 100644
--- a/views/special.classes.view.html
+++ b/views/service.classes/html.template
@@ -4,17 +4,15 @@
     <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in base.ns %}xmlns:{{i}}="{{ns}}" 
     {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en">
   <head>
-    <title>Classes available</title>
+    <title>My new Service</title>
     <link href="{{base.baseUrl}}/lodspeakr/css/basic.css" rel="stylesheet" type="text/css" media="screen" />
   </head>
   <body>
     <h1>Classes available</h1>
-{%include "header.inc"%}
 	<ul>
-    {% for row in r %}
-        <li><a href='{{base.baseUrl}}special/instances/{{ row.resource.curie }}'>{{row.resource.curie}}</a></li>
+    {% for row in r.main %}
+        <li><a href="{{base.baseUrl}}special/instances/{{ row.resource.curie }}">{{row.resource.curie}}</a></li>
     {% endfor %}
     </ul>
   </body>
 </html>
-
diff --git a/views/special.instances.view.html b/views/special.instances.view.html
deleted file mode 100644
index b164024cf0adbbd522503ca1bd7e72e2066057ae..0000000000000000000000000000000000000000
--- a/views/special.instances.view.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
-    "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in base.ns %}xmlns:{{i}}="{{ns}}" 
-    {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en">
-    <head>
-   <title>Instance of {{base.args.arg0}}</title>
-    <link href="{{base.baseUrl}}/lodspeakr/css/basic.css" rel="stylesheet" type="text/css" media="screen" />
-  </head>
-  <body>
-    <h1>Instances of {{base.args.arg0}}</h1>
-{%include "header.inc"%}
-	<ul>
-	{% for row in r %}
-        <li><a href='{{ row.resource.value }}'>{{row.resource.curie}}</a></li>
-        {% endfor %}
-    </ul>
-  </body>
-</html>
-
diff --git a/views/special.namedGraphs.view.html b/views/special.namedGraphs.view.html
deleted file mode 100644
index 65ee0d422589ded5522de1f6a0330367f293fefc..0000000000000000000000000000000000000000
--- a/views/special.namedGraphs.view.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
-    "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-    <html xmlns="http://www.w3.org/1999/xhtml" {% for i, ns in base.ns %}xmlns:{{i}}="{{ns}}" 
-    {%endfor%}version="XHTML+RDFa 1.0" xml:lang="en">
-  <head>
-    <title>Graphs available in the triple store</title>
-    <link href="{{base.baseUrl}}/lodspeakr/css/basic.css" rel="stylesheet" type="text/css" media="screen" />
-  </head>
-  <body>
-    <h1>Graphs available</h1>
-{%include "header.inc"%}
-	<ul>
-    {% for row in r %}
-        <li>{{row.g.curie}}</li>
-    {% endfor %}
-    </ul>
-  </body>
-</html>
-