diff --git a/classes/Queries.php b/classes/Queries.php
index 533f7383abfbbda0c89684c4db9e05be160c9c14..ca3c1c9b2285cd916d9d944bcbb9943ee3dc6055 100644
--- a/classes/Queries.php
+++ b/classes/Queries.php
@@ -50,9 +50,10 @@ class Queries{
   	  echo $ex->getMessage();
   	}
   	$result = array();
-  	if(sizeof($r['results']['bindings']) == 0){
+  	/*if(sizeof($r['results']['bindings']) == 0){
   	  return 'http://www.w3.org/2000/01/rdf-schema#Resource'; //default value if no type is present
-  	}
+  	}*/
+  	//$result[] = 'http://www.w3.org/2000/01/rdf-schema#Resource'; //All resources are rdf:type rdfs:Resource
   	foreach($r['results']['bindings'] as $v){
   	  $result[]= $v['class']['value'];
   	}
diff --git a/classes/Utils.php b/classes/Utils.php
index 9f936edc98d77e9c1e047ec346ec526489d68577..c4b3689a1a135cfc6672eacb7aa0e301d06ad95c 100644
--- a/classes/Utils.php
+++ b/classes/Utils.php
@@ -226,9 +226,6 @@ class Utils{
   	$extension = Utils::getExtension($contentType); 
 
   	header('Content-Type: '.$contentType);
-  	if($extension != 'html'){
-  	  $data = Utils::serializeRdf($data, $extension);
-  	}
   	Utils::showView($lodspk, $data, $viewFile);  	
   }
   
diff --git a/classes/modules/serviceModule.php b/classes/modules/serviceModule.php
index 487b55a679c809b964fe16ce7bd0b6ba62eee987..29b44bc654c9eb24a2838fba1aeedf93b4a3663c 100644
--- a/classes/modules/serviceModule.php
+++ b/classes/modules/serviceModule.php
@@ -14,133 +14,145 @@ class ServiceModule extends abstractModule{
   	  return FALSE;
   	}
   	$extension = Utils::getExtension($acceptContentType); 
-  	$lodspk['model'] = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0]."/";
+  	$lodspk['model'] = $conf['home'].$conf['model']['directory'].$conf['service']['prefix'].$qArr[0].'/';
   	$lodspk['view'] = $conf['home'].$conf['view']['directory'].$conf['service']['prefix'].$qArr[0].'/';
   	$viewFile  = $extension.".template";
   	$modelFile = $extension.".queries";
-  	if(file_exists($lodspk['model'].$modelFile) && file_exists($lodspk['view'].$viewFile) && $qArr[0] != null){
-  	  trigger_error("Using model ".$modelFile." and view ".$viewFile, E_USER_NOTICE);
- 	  return array($modelFile, $viewFile);
-  	}elseif($extension != 'html' && file_exists($lodspk['model'].$conf['service']['prefix'].$qArr[0].'/html.queries')){
-  	  $modelFile =  $conf['home'].$lodspk['model'].$conf['service']['prefix'].$qArr[0].'/html.queries';
-  	  $viewFile = null;
-  	  trigger_error("Using ".$modelFile." as model. It will be used as a CONSTRUCT", E_USER_NOTICE);
-  	  return array($modelFile, $viewFile);
+  	if(file_exists($lodspk['model']) && file_exists($lodspk['view'])){
+  	  if(!file_exists($lodspk['view'].$viewFile)){
+  	  	$viewFile = null;  	  
+  	  }
+  	  if(file_exists($lodspk['model'].$modelFile) && $qArr[0] != null){
+  	  	trigger_error("Using model ".$modelFile." and view ".$viewFile, E_USER_NOTICE);
+  	  	return array($modelFile, $viewFile);
+  	  }elseif($extension != 'html' && file_exists($lodspk['model'].'/html.queries')){
+  	  	$modelFile = 'html.queries';
+  	  	trigger_error("Using ".$modelFile." as model. It will be used as a CONSTRUCT", E_USER_NOTICE);
+  	  	return array($modelFile, $viewFile);
+  	  }else{
+  	  	Utils::send406($uri);
+  	  	exit(0);
+  	  }
   	}
   	
   	return FALSE;  
   }
-
-public function execute($service){
-  global $conf;
-  global $localUri;
-  global $uri;
-  global $acceptContentType;
-  global $endpoints;
-  global $lodspk;
-  global $first;
-  $context = array();
-  $context['contentType'] = $acceptContentType;
-  $context['endpoints'] = $endpoints;
-  //$sp = new SpecialFunction();
-  //$sp->execute($localUri, $context);
-  $f = $this->getFunction($localUri);
-  $params = array();
-  $params = $this->getParams($localUri);
-  //$params[] = $context;
-  $acceptContentType = Utils::getBestContentType($_SERVER['HTTP_ACCEPT']);
-  $extension = Utils::getExtension($acceptContentType); 
-  $args = array();
-  list($modelFile, $viewFile) = $service;
   
-  try{
-  	$prefixHeader = array();
+  public function execute($service){
+  	global $conf;
+  	global $localUri;
+  	global $uri;
+  	global $acceptContentType;
+  	global $endpoints;
+  	global $lodspk;
+  	global $first;
+  	$context = array();
+  	$context['contentType'] = $acceptContentType;
+  	$context['endpoints'] = $endpoints;
+  	//$sp = new SpecialFunction();
+  	//$sp->execute($localUri, $context);
+  	$f = $this->getFunction($localUri);
+  	$params = array();
+  	$params = $this->getParams($localUri);
+  	//$params[] = $context;
+  	$acceptContentType = Utils::getBestContentType($_SERVER['HTTP_ACCEPT']);
+  	$extension = Utils::getExtension($acceptContentType); 
+  	$args = array();
+  	list($modelFile, $viewFile) = $service;
   	
-  	for($i=0;$i<sizeof($params);$i++){
-  	  if($conf['mirror_external_uris']){
-  	  	$altUri = Utils::curie2uri($params[$i]);
-  	  	$altUri = preg_replace("|^".$conf['basedir']."|", $conf['ns']['local'], $altUri);
-  	  	$params[$i] = Utils::uri2curie($altUri);
+  	try{
+  	  $prefixHeader = array();
+  	  
+  	  for($i=0;$i<sizeof($params);$i++){
+  	  	if($conf['mirror_external_uris']){
+  	  	  $altUri = Utils::curie2uri($params[$i]);
+  	  	  $altUri = preg_replace("|^".$conf['basedir']."|", $conf['ns']['local'], $altUri);
+  	  	  $params[$i] = Utils::uri2curie($altUri);
+  	  	}
   	  }
-  	}
-  	
-  	for($i=0;$i<sizeof($params);$i++){  
-  	  $auxPrefix = Utils::getPrefix($params[$i]);
-  	  if($auxPrefix['ns'] != NULL){
-  	  	$prefixHeader[] = $auxPrefix;
+  	  
+  	  for($i=0;$i<sizeof($params);$i++){  
+  	  	$auxPrefix = Utils::getPrefix($params[$i]);
+  	  	if($auxPrefix['ns'] != NULL){
+  	  	  $prefixHeader[] = $auxPrefix;
+  	  	}
+  	  	$args["arg".$i]=$params[$i];
   	  }
-  	  $args["arg".$i]=$params[$i];
-  	}
-  	$results['params'] = $params;
-  	
-  	
-  	$lodspk['home'] = $conf['basedir'];
-  	$lodspk['baseUrl'] = $conf['basedir'];
-  	$lodspk['module'] = 'service';
-  	$lodspk['root'] = $conf['root'];
-  	$lodspk['contentType'] = $acceptContentType;
-  	$lodspk['ns'] = $conf['ns'];  	  	
-  	$lodspk['this']['value'] = $uri;
-  	$lodspk['this']['curie'] = Utils::uri2curie($uri);
-  	$lodspk['this']['local'] = $localUri;  	
-  	$lodspk['contentType'] = $acceptContentType;
-  	$lodspk['endpoint'] = $conf['endpoint'];
-  	
-  	$lodspk['type'] = $modelFile;
-  	$lodspk['header'] = $prefixHeader;
-  	$lodspk['args'] = $args;
-  	$lodspk['add_mirrored_uris'] = false;
-  	$lodspk['baseUrl'] = $conf['basedir'];
-  	$lodspk['this']['value'] = $uri;
-  	if($viewFile == null){
-  	  $lodspk['transform_select_query'] = true;
+  	  $results['params'] = $params;
+  	  
+  	  
+  	  $lodspk['home'] = $conf['basedir'];
+  	  $lodspk['baseUrl'] = $conf['basedir'];
+  	  $lodspk['module'] = 'service';
+  	  $lodspk['root'] = $conf['root'];
+  	  $lodspk['contentType'] = $acceptContentType;
+  	  $lodspk['ns'] = $conf['ns'];  	  	
+  	  $lodspk['this']['value'] = $uri;
+  	  $lodspk['this']['curie'] = Utils::uri2curie($uri);
+  	  $lodspk['this']['local'] = $localUri;  	
+  	  $lodspk['contentType'] = $acceptContentType;
+  	  $lodspk['endpoint'] = $conf['endpoint'];
+  	  
+  	  $lodspk['type'] = $modelFile;
+  	  $lodspk['header'] = $prefixHeader;
+  	  $lodspk['args'] = $args;
+  	  $lodspk['add_mirrored_uris'] = false;
+  	  $lodspk['baseUrl'] = $conf['basedir'];
+  	  $lodspk['this']['value'] = $uri;
+  	  if($viewFile == null){
+  	  	$lodspk['transform_select_query'] = true;
+  	  }
+  	  chdir($lodspk['model']);
+  	  
+  	  Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
+  	if($lodspk['resultRdf']){
+  	  echo Utils::serializeRdf($results, $extension);
+  	  exit(0);
+  	}else{
+  	  $results = Utils::internalize($results); 
   	}
-  	chdir($lodspk['model']);
-  	
-  	Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
-  	$results = Utils::internalize($results);
-  	
-  	$lodspk['first'] = Utils::getFirsts($results);
-  	chdir($conf['home']);
-  	if(is_array($results)){
-  	  $results = Convert::array_to_object($results);
+  	  
+  	  $lodspk['first'] = Utils::getFirsts($results);
+  	  chdir($conf['home']);
+  	  if(is_array($results)){
+  	  	$results = Convert::array_to_object($results);
+  	  }
+  	  
+  	  //Need to redefine viewFile as 'local' i.e., inside service.foo/ so I can load files with the relative path correctly
+  	  //$viewFile = $extension.".template";
+  	  
+  	  Utils::processDocument($viewFile, $lodspk, $results);  
+  	  
+  	}catch (Exception $ex){
+  	  echo $ex->getMessage();
+  	  trigger_error($ex->getMessage(), E_ERROR);
+  	  Utils::send500($uri);
   	}
-  	
-  	//Need to redefine viewFile as 'local' i.e., inside service.foo/ so I can load files with the relative path correctly
-  	//$viewFile = $extension.".template";
-
-  	Utils::processDocument($viewFile, $lodspk, $results);  
-  	
-  }catch (Exception $ex){
-  	echo $ex->getMessage();
-  	trigger_error($ex->getMessage(), E_ERROR);
-  	Utils::send500($uri);
+  	exit(0);	
   }
-  exit(0);	
-}
-
-
-protected function getFunction($uri){
-  global $conf;
-  $count = 1;
-  $prefixUri = $conf['basedir'];
-  $aux = str_replace($prefixUri, '', $uri, $count);
-  $functionAndParams = explode('/', $aux);
-  return $functionAndParams[0];
-}
-
-protected function getParams($uri){
-  global $conf;
-  $count = 1;
-  $prefixUri = $conf['basedir'];
-  $functionAndParams = explode('/', str_replace($prefixUri, '', $uri, $count));
-  if(sizeof($functionAndParams) > 1){
-  	array_shift($functionAndParams);
-  	return $functionAndParams;
-  }else{
-  	return array(null);
+  
+  
+  protected function getFunction($uri){
+  	global $conf;
+  	$count = 1;
+  	$prefixUri = $conf['basedir'];
+  	$aux = str_replace($prefixUri, '', $uri, $count);
+  	$functionAndParams = explode('/', $aux);
+  	return $functionAndParams[0];
   }
-}
-
+  
+  protected function getParams($uri){
+  	global $conf;
+  	$count = 1;
+  	$prefixUri = $conf['basedir'];
+  	$functionAndParams = explode('/', str_replace($prefixUri, '', $uri, $count));
+  	if(sizeof($functionAndParams) > 1){
+  	  array_shift($functionAndParams);
+  	  return $functionAndParams;
+  	}else{
+  	  return array(null);
+  	}
+  }
+  
 }
 ?>
diff --git a/classes/modules/typeModule.php b/classes/modules/typeModule.php
index 7f5f7592f73326235287b2a5de8a6d0737c5aa81..d1c2becca37101636f7e9051ad42aba4e7d48983 100644
--- a/classes/modules/typeModule.php
+++ b/classes/modules/typeModule.php
@@ -60,14 +60,16 @@ class TypeModule extends abstractModule{
   	//Check if files for model and view exist
   	$t=Queries::getClass($uri, $endpoints['local']);
   	
-  	$obj = $this->getModelandView($t, $extension);
+  	$obj = $this->getModelandView($t, $extension); 
   	$modelFile = $obj['modelFile'];
-  	$lodspk['model'] = $obj['modelDir'];  	
+  	$lodspk['model'] = $conf['model']['directory'];  	
   	$viewFile = $obj['viewFile'];
-  	$lodspk['view'] = $obj['viewDir'];
+  	$lodspk['view'] = $obj['view']['directory'];
   	if($viewFile == null){
   	  $lodspk['transform_select_query'] = true;
   	}
+
+  	$lodspk['type'] = $modelFile;
   	$lodspk['home'] = $conf['basedir'];
   	$lodspk['baseUrl'] = $conf['basedir'];
   	$lodspk['module'] = 'type';
@@ -75,16 +77,22 @@ class TypeModule extends abstractModule{
   	$lodspk['contentType'] = $acceptContentType;
   	$lodspk['ns'] = $conf['ns'];
   	$lodspk['endpoint'] = $conf['endpoint'];
+  	$lodspk['view'] = $conf['view']['directory'];
 
   	$lodspk['add_mirrored_uris'] = true;
   	$lodspk['this']['value'] = $uri;
   	$lodspk['this']['curie'] = Utils::uri2curie($uri);
   	$lodspk['this']['local'] = $localUri;
    	$lodspk['this']['extension'] = $extension;
-  	chdir($conf['home'].$lodspk['model']);
+   	
+  	chdir($conf['home'].$conf['model']['directory']);
   	Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
-  	$results = Utils::internalize($results); 
-  	
+    if($lodspk['resultRdf']){
+  	  echo Utils::serializeRdf($results, $extension);
+  	  exit(0);
+  	}else{
+  	  $results = Utils::internalize($results); 
+  	}  	
   	$lodspk['first'] = Utils::getFirsts($results);
   	chdir($conf['home']);
   	if(is_array($results)){
@@ -92,7 +100,8 @@ class TypeModule extends abstractModule{
   	}else{
   	  $resultsObj = $results;
   	}
- 	Utils::processDocument($viewFile, $lodspk, $resultsObj);
+  	//chdir($conf['home'].$conf['model']['directory']);
+  	Utils::processDocument($viewFile, $lodspk, $resultsObj);
   	
   }
   
@@ -101,39 +110,45 @@ class TypeModule extends abstractModule{
   	global $results;
   	global $rPointer;
   	global $lodspk;
-  	$objResult = array();
+  	$objResult = array('modelFile' => null, 'viewFile' => null);
   	//Defining default views and models
   	$curieType="";
-  	$objResult['modelFile'] = 'main.query';
-  	$objResult['viewFile'] = null;//'html.template';
+/*  	$objResult['modelFile'] = 'main.query';
+  	$objResult['viewFile'] = 'html.template';
   	$objResult['modelDir'] = $conf['model']['directory'].'type.rdfs:Resource/html.queries/';
   	$objResult['viewDir'] = $conf['view']['directory'].'type.rdfs:Resource/'; 
-  	
+  */	
  	//Get the first type available
-  	$typesAndValues = array();
+  	$typesAndValues = array('rdfs:Resource' => -1);
   	foreach($t as $v){
   	  $curie = Utils::uri2curie($v);
   	  $typesAndValues[$curie] = 0;
-  	  if(isset($conf['types']['priorities'][$curie]) && $conf['types']['priorities'][$curie] >= 0){
-  	  	$typesAndValues[$curie] = $conf['types']['priorities'][$curie];
+  	  if(isset($conf['type']['priorities'][$curie]) && $conf['type']['priorities'][$curie] >= 0){
+  	  	$typesAndValues[$curie] = $conf['type']['priorities'][$curie];
   	  }
   	}
   	arsort($typesAndValues);
   	foreach($typesAndValues as $v => $w){
-  	  $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/';
-  	  $auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'; 
-  	  if(file_exists($auxModelFile) && file_exists($auxViewFile) && $v != null){
-  	  	$auxViewFile  = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template';
-  	  	$auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries'; 	  	
-  	  	$objResult['viewFile'] = $extension.'.template';
-  	  	$objResult['modelFile'] = $extension.'.queries';
-  	  	break;
+  	  $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries';
+  	  $auxViewFile = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template'; 
+  	  if($v == null){continue;}
+  	  if(file_exists($auxModelFile)){
+  	  	$objResult['modelFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.queries';
+  	  	if(file_exists($auxViewFile)){
+  	  	  $objResult['viewFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.template';
+  	  	}elseif($extension != 'html'){ //View doesn't exists (and is not HTML)
+  	  	  $objResult['viewFile'] = null;  	  	
+  	  	}
+  	  	return $objResult;
   	  }elseif($extension != 'html' &&
   	  	file_exists($conf['model']['directory'].$conf['type']['prefix'].$v.'/html.queries')){
-	  $auxViewFile  = $conf['view']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.template';
-  	  $auxModelFile = $conf['model']['directory'].$conf['type']['prefix'].$v.'/'.$extension.'.queries';
-  	  $objResult['modelFile'] = $conf['type']['prefix'].$v.'/html.queries';
-  	  $objResult['viewFile'] = null;
+	  $objResult['modelFile'] = $conf['type']['prefix'].$v.'/html.queries';
+  	  if(file_exists($auxViewFile) ){
+  	  	$objResult['viewFile'] = $conf['type']['prefix'].$v.'/'.$extension.'.template';
+  	  }else{
+  	  	$lodspk['transform_select_query'] = true;
+  	  	$objResult['viewFile'] = null;
+  	  }
   	  trigger_error("LODSPeaKr can't find the proper query. Using HTML query instead.", E_USER_NOTICE);
   	  break;
   	  	}
diff --git a/classes/modules/uriModule.php b/classes/modules/uriModule.php
index c4abe3214947617607f25ef78627827f24798cef..3186fa688f3d5cc7283ef2374b5083710dc63fba 100644
--- a/classes/modules/uriModule.php
+++ b/classes/modules/uriModule.php
@@ -100,7 +100,6 @@ class UriModule extends abstractModule{
   	
   	
   	chdir($conf['home'].$conf['model']['directory']);
-  	
   	Utils::queryFile($modelFile, $endpoints['local'], $results, $first);
   	if($lodspk['resultRdf']){
   	  echo Utils::serializeRdf($results, $extension);
@@ -137,6 +136,9 @@ class UriModule extends abstractModule{
   	  }elseif($extension != 'html'){
   	  	//View doesn't exists (and is not HTML)
   	  	$viewFile = null;  	  	
+  	  }else{
+  	  	//No HTML representation as fallback, then not recognized by URI module 
+  	  	return array(null, null);
   	  }
   	  return array($modelFile, $viewFile);
   	}elseif($extension != 'html' && file_exists($conf['model']['directory'].$conf['uri']['prefix'].$uri.'/html.queries')){
diff --git a/common.inc.php b/common.inc.php
index 6fd297de03aa1ea0ee119b12263320b9e37d87d1..a51c4f6944ced289bcea7b8c658b6f3134f461df 100644
--- a/common.inc.php
+++ b/common.inc.php
@@ -43,7 +43,7 @@ $conf['root'] = 'index.html';
 $conf['extension_connector'] = '.';
 
 //Priority for rdfs:Resource (default). Priorities should be >=0
-$conf['types']['priorities']['rdfs:Resource'] = -1;
+$conf['type']['priorities']['rdfs:Resource'] = -1;
 
 //Debug
 $conf['debug'] = false;
diff --git a/install.sh b/install.sh
index 21df6785d19ea421580ce6948925330b7327e93c..65619b531916770ace037327479e9035d10e0e1e 100755
--- a/install.sh
+++ b/install.sh
@@ -23,19 +23,7 @@ fi
 back_one=`cd .. 2>/dev/null && pwd`
 parent=`basename $back_one`
 
-mkdir -p meta
-cd meta
-if [ ! -e $metadb ]; then
-  SQLITE3=`which sqlite3`
-  if [ -z "$SQLITE3" ]; then
-  	echo "SQLlite3 is required to continue installation. Please add it to your \$PATH."
-  	exit 1
-  fi
-  $SQLITE3 $metadb 'CREATE TABLE document (uri varcharg(1000), doc varchar(1000), format varchar(50));'
-else
-  echo "WARNING: SQLite database already exists."
-fi
-cd ..
+utils/create_db.sh $metadb
 
 while [ "$everything_ok" != "y" ]; do
   echo
diff --git a/utils/create_db.sh b/utils/create_db.sh
new file mode 100755
index 0000000000000000000000000000000000000000..285062c2c4a538399e2bde10b7a66bf33006b6df
--- /dev/null
+++ b/utils/create_db.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+if [[ "$1" = "" ]]; then
+  echo Usage: $0 sqliteFile
+  exit 1
+fi
+
+mkdir -p meta
+cd meta
+if [ ! -e $1 ]; then
+  SQLITE3=`which sqlite3`
+  if [ -z "$SQLITE3" ]; then
+  	echo "SQLlite3 is required to continue installation. Please add it to your \$PATH."
+  	exit 1
+  fi
+  $SQLITE3 $1 'CREATE TABLE document (uri varcharg(1000), doc varchar(1000), format varchar(50));'
+else
+  echo "WARNING: SQLite database already exists."
+fi
+cd ..