diff --git a/classes/Endpoint.php b/classes/Endpoint.php
new file mode 100644
index 0000000000000000000000000000000000000000..e670de63bb2f41040ac5561e9a0e645959f80583
--- /dev/null
+++ b/classes/Endpoint.php
@@ -0,0 +1,25 @@
+<?
+
+class Endpoint{
+  private $sparqlUrl;
+  private $params; 
+  
+  public function __construct($sparqlUrl, $params){
+  	$this->sparqlUrl = $sparqlUrl;
+  	$this->params = $params;
+  }
+  
+  public function query($q){
+  	$context = stream_context_create(array(
+  	  'http' => array('header'=>'Connection: close')));
+  	$params = $this->params;
+  	$params['query'] = $q;
+  	$url = $this->sparqlUrl.'?'.http_build_query($params, '', '&');
+  	$aux = file_get_contents($url, false,$context);
+  	return json_decode($aux, true);
+  }
+  
+  
+}
+
+?>
diff --git a/classes/Queries.php b/classes/Queries.php
new file mode 100644
index 0000000000000000000000000000000000000000..d662b10fee3e053c3b347d908bdd72f322b85513
--- /dev/null
+++ b/classes/Queries.php
@@ -0,0 +1,55 @@
+<?
+
+class Queries{
+  public static function uriExist($uri, $e){
+  	$q = "SELECT * WHERE{
+  	{<$uri> ?p1 ?o1}
+  	UNION
+  	{?s1 <$uri> ?o2}
+  	UNION
+  	{?s2 ?p2 <$uri>}
+  	}LIMIT 1";
+  	
+  	$r = $e->query($q);
+  	if(sizeof($r['results']['bindings'])>0){
+  	  return true;
+  	}
+  	return false;
+  }
+  
+  public static function getClass($uri, $e){
+  	$q = "SELECT DISTINCT ?class WHERE{
+  	<$uri> a ?class .
+  	} LIMIT 1";
+  	$r = $e->query($q);
+  	if(sizeof($r['results']['bindings'])>0){
+  	  return $r['results']['bindings'][0]['class']['value'];
+  	}
+  	return NULL;
+  }
+  
+  public static function getMetaData($uri, $e){
+  	global $conf;
+  	$named_graph = $conf['metaendpoint']['config']['named_graph'];
+  	$q = <<<QUERY
+  	PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
+  	SELECT ?page ?uri WHERE{
+  	GRAPH <$named_graph>{
+  	?s ?p ?o . #Stupid dummy triple to make it work with ARC2
+  	OPTIONAL{?page foaf:primaryTopic <$uri>} .
+  	OPTIONAL{<$uri> foaf:primaryTopic ?uri} .
+  	}
+  	}LIMIT 1
+QUERY;
+
+$r = $e->query($q);
+if(sizeof($r['results']['bindings'])>0){
+  $u = (isset($r['results']['bindings'][0]['uri']))?$r['results']['bindings'][0]['uri']['value']:NULL;
+  $p = (isset($r['results']['bindings'][0]['page']))?$r['results']['bindings'][0]['page']['value']:NULL;
+  
+  return array($u, $p);
+}
+return NULL;
+  }
+}
+  	?>
diff --git a/classes/Utils.php b/classes/Utils.php
new file mode 100644
index 0000000000000000000000000000000000000000..d7aeb459cc67fe0ca717b74b5ba41a8ac75bda7e
--- /dev/null
+++ b/classes/Utils.php
@@ -0,0 +1,53 @@
+<? 
+
+class Utils{
+  public static function send404($uri){
+  	header("HTTP/1.0 404 Not Found");
+  	echo "I could not find ".$uri." or information about it";
+  	exit(0);
+  }
+  
+  public static function send303($uri){
+  	header("HTTP/1.0 303 See Other");
+  	header("Location: ".$uri);
+  	exit(0);
+  }
+  
+  public static function uri2curie($uri){
+  	global $conf;
+  	$ns = $conf['ns'];
+  	$curie = $uri;
+  	foreach($ns as $k => $v){
+  	  $curie = preg_replace("|^$v|", "$k:", $uri);
+  	  if($curie != $uri){
+  	  	break;
+  	  }
+  	}
+  	return $curie;
+  }
+  
+  public static function getTemplate($uri){
+  	$filename = str_replace(":", "_", $uri);
+  	if(file_exists ($filename)){
+  	  include_once($filename);
+  	}
+  }
+  
+  public static function showView($uri, $data, $view){
+  	global $conf;
+  	$body = file_get_contents($view);
+  	$r = $data['results']['bindings'];
+  	if(sizeof($r)> 0){
+  	  foreach($r as $v){
+  	  	foreach($v as $k => $w){
+  	  	  $body = preg_replace("|%".$k."|", $w['value'], $body);
+  	  	  echo $html;
+  	  	}
+  	  }
+  	}
+  	$html = preg_replace("|".$conf['resource']['url_delimiter']."|", $uri, $body);
+  	echo $html;
+  }
+  
+}
+?>
diff --git a/config.inc.php b/config.inc.php
deleted file mode 100644
index c24eaf2c6f3fa61f92dbd9bde8577f445378c16d..0000000000000000000000000000000000000000
--- a/config.inc.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?
-
-include_once('settings.inc.php');
-
-
-function query($q){
-  global $conf;
-  $endpoint = $conf['endpoint']['host'];
-  $params = $conf['endpoint']['config'];
-  $params['query'] = $q;
-  $url = $endpoint.'?'.http_build_query($params, '', '&');
-  return json_decode(file_get_contents($url), true);
-}
-
-
-function getClass($uri){
-  $q = "SELECT DISTINCT ?class WHERE{
-          <$uri> a ?class .
-        } LIMIT 1";
-        $r = query($q);
-        if(sizeof($r['results']['bindings'])>0){
-          return $r['results']['bindings'][0]['class']['value'];
-        }
-        return NULL;
-}
-
-function uri2curie($uri){
-  global $conf;
-  $ns = $conf['ns'];
-  $curie = $uri;
-  foreach($ns as $k => $v){
-    $curie = preg_replace("|^$v|", "$k:", $uri);
-    if($curie != $uri){
-      break;
-    }
-  }
-  return $curie;
-}
-
-
-function getTemplate($uri){
-  $filename = str_replace(":", "_", $uri);
-  if(file_exists ($filename)){
-    include_once($filename);
-  }
-}
-
-function send404($uri){
-  header("HTTP/1.0 404 Not Found");
-  echo "I could not find ".$uri." or information about it";
-  exit(0);
-}
-
-function showView($uri, $body){
-  global $conf;
-  $html = preg_replace("|".$conf['resource']['url_delimiter']."|", $uri, $body);
-  echo $html;
-}