diff --git a/README.md b/README.md
index 9e3ce612cebe6dfc4b3b6a8679804588ccb29454..97dbcd3106763e6745a9343a9a8818c44b5aa2d8 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ LODSPeaKr
 
 author: Alvaro Graves (alvaro@graves.cl)
 
-version: 20130212
+version: 20130215
 
 
 [LODSPeaKr](http://lodspeakr.org) is a framework for creating Linked Data applications in a simple and easy way. You can see [several applications](http://alangrafu.github.com/lodspeakr/applications.html) created using LODSPeaKr.
diff --git a/classes/Utils.php b/classes/Utils.php
index 91afc41b8cfd4d578cf91b7f1961b6403a7817cc..dc80b4d45135559850133d5a2dff1899f882a77e 100644
--- a/classes/Utils.php
+++ b/classes/Utils.php
@@ -551,9 +551,10 @@ class Utils{
   	require_once($conf['home'].'lib/Haanga/lib/Haanga.php');
   	$viewAux = explode("/",$view);
   	$viewFile = array_pop($viewAux);
+    //$viewFile = $view;
   	$viewPath = join("/", $viewAux);
   	Haanga::configure(array(
-  	  'template_dir' => $conf['home'].$viewPath,
+  	  'template_dir' => $viewPath,
   	  'cache_dir' => $conf['home'].'cache/',
   	  ));
   	$models = $data;
@@ -567,7 +568,7 @@ class Utils{
  	}
 	if(is_string($data)){
 	  echo($data);
-	}elseif(is_file($conf['home'].$view)){
+	}elseif(is_file($view)){
 	  try{
 	    Haanga::Load($viewFile, $vars);
 	  }catch(Exception $e){
diff --git a/classes/modules/serviceModule.php b/classes/modules/serviceModule.php
index da60e38964c32f719eb844a836dcd7829258a223..0175ac3b26cdd7e3c46441f82bf75203cd474af3 100644
--- a/classes/modules/serviceModule.php
+++ b/classes/modules/serviceModule.php
@@ -9,6 +9,9 @@ class ServiceModule extends abstractModule{
   	global $acceptContentType; 
     global $localUri;
     global $lodspk;
+    
+    $lodspk['model'] = null;
+    $lodspk['view'] = null;
   	$q = preg_replace('|^'.$conf['basedir'].'|', '', $localUri);
  	$qArr = explode('/', $q);
   	if(sizeof($qArr)==0){
@@ -36,16 +39,40 @@ class ServiceModule extends abstractModule{
   	    }
   	    $serviceName = join(".",$aux);
   	  }
-  	  
+
+      //checking default components  	  
   	  if(file_exists($conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/scaffold.ttl')){
   	    $subDir = $this->readScaffold($conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/scaffold.ttl', join("/", $arguments));
   	    $subDir.= '/';
-  	    $lodspk['model'] = $conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$subDir;
+  	    $lodspk['model'] = $conf['home'].$conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$subDir;
   	    $lodspk['view'] = $conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$subDir.$extension.'.template';  	    
-  	  }else{  	    
-  	    $lodspk['model'] = $conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/';
-  	    $lodspk['view'] = $conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$extension.'.template';
+  	  }elseif(file_exists($conf['home'].$conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName)){  	    
+  	    $lodspk['model'] = $conf['home'].$conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/';
+  	    $lodspk['view'] = $conf['home'].$conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$extension.'.template';
+  	  }else{
+  	    if($lodspk['model'] == null && $lodspk['view'] == null){
+  	      //checking other components
+  	      foreach($conf['components']['services'] as $service){
+  	        $serviceArray = explode("/", $service);
+  	        if($serviceName == end($serviceArray)){
+  	          array_pop($serviceArray);
+  	          $conf['service']['prefix'] = array_pop($serviceArray);
+  	          $conf['model']['directory'] = join("/", $serviceArray);
+  	          $conf['view']['directory'] = $conf['model']['directory'];
+  	          if(file_exists($conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/scaffold.ttl')){
+  	            $subDir = $this->readScaffold($conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/scaffold.ttl', join("/", $arguments));
+  	            $subDir.= '/';
+  	            $lodspk['model'] = $conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$subDir;
+  	            $lodspk['view'] = $conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$subDir.$extension.'.template';  	    
+  	          }elseif(file_exists($conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName)){ 
+  	            $lodspk['model'] = $conf['model']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/';
+  	            $lodspk['view'] = $conf['view']['directory'].'/'.$conf['service']['prefix'].'/'.$serviceName.'/'.$extension.'.template';
+  	          }
+  	        }
+  	      }
+  	    }
   	  }
+  	  
   	  $lodspk['serviceName'] = join("/", $tokens);
   	  $lodspk['componentName'] = $lodspk['serviceName'];
   	  $modelFile = $lodspk['model'].$extension.'.queries';
@@ -144,7 +171,6 @@ class ServiceModule extends abstractModule{
   	  	$lodspk['transform_select_query'] = true;
   	  }
   	//  chdir($lodspk['model']);
-  	  
   	  Utils::queryFile($modelFile, $endpoints['local'], $results, $firstResults);
       if(!$lodspk['resultRdf']){
       	$results = Utils::internalize($results); 
diff --git a/classes/modules/typeModule.php b/classes/modules/typeModule.php
index 9482d69e83a7b1fd9d57b3de0f39600a54a22fa5..000671147b7925345ebb5b6d01087ba4240e30a5 100644
--- a/classes/modules/typeModule.php
+++ b/classes/modules/typeModule.php
@@ -119,7 +119,7 @@ class TypeModule extends abstractModule{
   	$curieType="";
  	//Get the firstResults type available
   	$typesAndValues = array('rdfs:Resource' => -1);
-  	if($conf['disableComponents'] != true){
+  	if(!isset($conf['disableComponents']) || $conf['disableComponents'] != true){
   	  foreach($t as $v){
   	  	$curie = Utils::uri2curie($v);
   	  	$typesAndValues[$curie] = 0;
@@ -135,8 +135,8 @@ class TypeModule extends abstractModule{
   	  $extensionModel = $extension.'.';
   	}
   	foreach($typesAndValues as $v => $w){
-  	  $auxViewFile  = $conf['view']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.template';
-  	  $auxModelFile = $conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.queries';
+      $auxViewFile  = $conf['home'].$conf['view']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.template';
+  	  $auxModelFile = $conf['home'].$conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/'.$extension.'.queries';
   	  if($v == null){continue;}
   	  $lodspk['componentName'] = $v;
   	  if(file_exists($auxModelFile)){
@@ -146,9 +146,9 @@ class TypeModule extends abstractModule{
   	  	}elseif($extension != 'html'){ //View doesn't exists (and is not HTML)
   	  	  $objResult['viewFile'] = null;
   	  	}
-  	  	return $objResult;
-  	  }elseif(file_exists($conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/queries')){
-  	  	$objResult['modelFile'] = $conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/queries';
+  	  	break;//return $objResult;
+  	  }elseif(file_exists($conf['home'].$conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/queries')){
+  	  	$objResult['modelFile'] = $conf['home'].$conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$v.'/queries';
   	  	if(file_exists($auxViewFile) ){
   	  	  $objResult['viewFile'] = $auxViewFile;
   	  	}else{
@@ -157,11 +157,30 @@ class TypeModule extends abstractModule{
   	  	}
   	  	trigger_error("LODSPeaKr can't find the proper query. Using HTML query instead.", E_USER_NOTICE);
   	  	break;
+  	  }else{
+  	    $found = false;
+  	    foreach($conf['components']['types'] as $type){
+  	      $typeArray = explode("/", $type);
+  	      $typeName = end($typeArray);
+  	      if($v == $typeName && file_exists($type)){
+  	        array_pop($typeArray);
+  	        $conf['type']['prefix'] = array_pop($typeArray);
+  	        $conf['model']['directory'] = join("/", $typeArray);
+  	        $conf['view']['directory'] = $conf['model']['directory'];
+  	        $lodspk['model'] = $conf['model']['directory'].'/'.$conf['type']['prefix'].'/'.$typeName.'/queries';
+  	        $lodspk['view'] = $conf['view']['directory'].'/'.$conf['type']['prefix'].'/'.$typeName.'/'.$extension.'.template';
+  	        $objResult['viewFile'] = $lodspk['view'];
+  	        $objResult['modelFile'] = $lodspk['model'];
+  	        $found = true;
+  	        return $objResult;
+  	      }
+  	    }
+  	    if($found){break;}
   	  }
-  	}
-  	/*if($objResult['viewFile'] == null && $extensionView == 'html'){
+  	  /*if($objResult['viewFile'] == null && $extensionView == 'html'){
   	  $objResult['viewFile'] = 'html.template';
-  	}*/
+  	  }*/
+  	}
   	return $objResult;
   }
   
diff --git a/common.inc.php b/common.inc.php
index 560152e2779cdbf3aeaae62cb6eacf9abb9a0d64..cf5f82369bb820d8532ef4c0b55cd18528bea406 100644
--- a/common.inc.php
+++ b/common.inc.php
@@ -1,6 +1,6 @@
 <?php
 
-$conf['version'] = '20130212';
+$conf['version'] = '20130215';
 $conf['output']['select'] = 'json';
 $conf['output']['ask'] = 'json';
 $conf['output']['describe'] = 'rdf';