diff --git a/core/Access.php b/core/Access.php
index 931e958567377897f322894051711fdef2b99506..ab92cf97c1cbb81c7ae7b4ab641f8026eca10e79 100644
--- a/core/Access.php
+++ b/core/Access.php
@@ -425,7 +425,7 @@ class Access
             $idSites = $this->getSitesIdWithAtLeastViewAccess();
         }
 
-        $idSites = \Piwik_Site::getIdSitesFromIdSitesString($idSites);
+        $idSites = \Piwik\Site::getIdSitesFromIdSitesString($idSites);
         if (empty($idSites)) {
             throw new NoAccessException("The parameter 'idSite=' is missing from the request.");
         }
diff --git a/core/Archive.php b/core/Archive.php
index 993390b46d52bc837dfdc41721d6443b7bb44f9e..5ba77c65233233d1afaeee48d14c83eb0ce007a4 100644
--- a/core/Archive.php
+++ b/core/Archive.php
@@ -122,19 +122,19 @@ class Archive
      */
     public static function build($idSites, $period, $strDate, $segment = false, $_restrictSitesToLogin = false)
     {
-        $websiteIds = Piwik_Site::getIdSitesFromIdSitesString($idSites, $_restrictSitesToLogin);
+        $websiteIds = Site::getIdSitesFromIdSitesString($idSites, $_restrictSitesToLogin);
 
-        if (Piwik_Period::isMultiplePeriod($strDate, $period)) {
+        if (Period::isMultiplePeriod($strDate, $period)) {
             $oPeriod = new Piwik_Period_Range($period, $strDate);
             $allPeriods = $oPeriod->getSubperiods();
         } else {
-            $timezone = count($websiteIds) == 1 ? Piwik_Site::getTimezoneFor($websiteIds[0]) : false;
-            $oPeriod = Piwik_Period::makePeriodFromQueryParams($timezone, $period, $strDate);
+            $timezone = count($websiteIds) == 1 ? Site::getTimezoneFor($websiteIds[0]) : false;
+            $oPeriod = Period::makePeriodFromQueryParams($timezone, $period, $strDate);
             $allPeriods = array($oPeriod);
         }
         $segment = new Piwik_Segment($segment, $websiteIds);
         $idSiteIsAll = $idSites == self::REQUEST_ALL_WEBSITES_FLAG;
-        $isMultipleDate = Piwik_Period::isMultiplePeriod($strDate, $period);
+        $isMultipleDate = Period::isMultiplePeriod($strDate, $period);
         return Archive::factory($segment, $allPeriods, $websiteIds, $idSiteIsAll, $isMultipleDate);
     }
 
@@ -431,7 +431,7 @@ class Archive
     {
         $today = Piwik_Date::today();
 
-        /* @var Piwik_Period $period */
+        /* @var Period $period */
         foreach ($this->params->getPeriods() as $period) {
             $periodStr = $period->getRangeString();
 
@@ -439,7 +439,7 @@ class Archive
             $twoDaysAfterPeriod = $period->getDateEnd()->addDay(2);
 
             foreach ($this->params->getIdSites() as $idSite) {
-                $site = new Piwik_Site($idSite);
+                $site = new Site($idSite);
 
                 // if the END of the period is BEFORE the website creation date
                 // we already know there are no stats for this period
diff --git a/core/Archive/DataCollection.php b/core/Archive/DataCollection.php
index 9dc9a38e6302ca4e6243d7ab4a35cfa10b120ddd..f6b50b485b5d599d73df12fe96a13290423899db 100644
--- a/core/Archive/DataCollection.php
+++ b/core/Archive/DataCollection.php
@@ -83,8 +83,8 @@ class Piwik_Archive_DataCollection
      * the period's range string. Eg,
      * 
      * array(
-     *     '2012-01-01,2012-01-31' => new Piwik_Period(...),
-     *     '2012-02-01,2012-02-28' => new Piwik_Period(...),
+     *     '2012-01-01,2012-01-31' => new Period(...),
+     *     '2012-02-01,2012-02-28' => new Period(...),
      * )
      * 
      * @var array
diff --git a/core/Archive/DataTableFactory.php b/core/Archive/DataTableFactory.php
index 6bee96d34422f07f12730efaf0a6db50cf0e9582..0b3cf237432a3ac4e79bbc98eff741e2fe37ca23 100644
--- a/core/Archive/DataTableFactory.php
+++ b/core/Archive/DataTableFactory.php
@@ -9,6 +9,7 @@
  * @package Piwik
  */
 
+use Piwik\Site;
 const FIX_ME_OMG = 'this is a warning and reminder to fix this code ';
 
 /**
@@ -352,14 +353,14 @@ class Piwik_Archive_DataTableFactory
     }
     
     /**
-     * Converts site IDs and period string ranges into Piwik_Site instances and
-     * Piwik_Period instances in DataTable metadata.
+     * Converts site IDs and period string ranges into Site instances and
+     * Period instances in DataTable metadata.
      */
     private function transformMetadata($table)
     {
         $periods = $this->periods;
         $table->filter(function ($table) use($periods) {
-            $table->metadata['site'] = new Piwik_Site($table->metadata['site']);
+            $table->metadata['site'] = new Site($table->metadata['site']);
             $table->metadata['period'] = empty($periods[$table->metadata['period']])
                                             ? FIX_ME_OMG
                                             : $periods[$table->metadata['period']];
diff --git a/core/Archive/Parameters.php b/core/Archive/Parameters.php
index 51b0a9e45499bc64dbbdd5d39594d51c99ab1a72..0db74b0a58e0ba58f4cc38e1496b2c6cd1017a22 100644
--- a/core/Archive/Parameters.php
+++ b/core/Archive/Parameters.php
@@ -10,7 +10,7 @@ class Piwik_Archive_Parameters
     private $idSites = array();
 
     /**
-     * The list of Piwik_Period's to query archive data for.
+     * The list of Period's to query archive data for.
      *
      * @var array
      */
diff --git a/core/ArchiveProcessor.php b/core/ArchiveProcessor.php
index bcbfcc1de2b7346a88f0ffd8c4f6d903d048291d..42185a219b4d1df8aefba374c821eb385d520f5f 100644
--- a/core/ArchiveProcessor.php
+++ b/core/ArchiveProcessor.php
@@ -9,7 +9,9 @@
  * @package Piwik
  */
 use Piwik\Config;
+use Piwik\Period;
 use Piwik\Piwik;
+use Piwik\Site;
 
 /**
  * The ArchiveProcessor class is used by the Archive object to make sure the given Archive is processed and available in the DB.
@@ -80,12 +82,12 @@ abstract class Piwik_ArchiveProcessor
      * Site of the current archive
      * Can be accessed by plugins (that is why it's public)
      *
-     * @var Piwik_Site
+     * @var Site
      */
     private $site = null;
 
     /**
-     * @var Piwik_Period
+     * @var Period
      */
     private $period = null;
 
@@ -94,7 +96,7 @@ abstract class Piwik_ArchiveProcessor
      */
     private $segment = null;
 
-    public function __construct(Piwik_Period $period, Piwik_Site $site, Piwik_Segment $segment)
+    public function __construct(Period $period, Site $site, Piwik_Segment $segment)
     {
         $this->period = $period;
         $this->site = $site;
@@ -114,7 +116,7 @@ abstract class Piwik_ArchiveProcessor
     }
 
     /**
-     * @return Piwik_Period
+     * @return Period
      */
     protected function getPeriod()
     {
@@ -122,7 +124,7 @@ abstract class Piwik_ArchiveProcessor
     }
 
     /**
-     * @return Piwik_Site
+     * @return Site
      */
     public function getSite()
     {
diff --git a/core/ArchiveProcessor/Rules.php b/core/ArchiveProcessor/Rules.php
index a4ddd03e350fcd4fa8922225fc4bcec3ea3ab0f2..b8b91cd70341e57526dcbbd1b557d109519c40ad 100644
--- a/core/ArchiveProcessor/Rules.php
+++ b/core/ArchiveProcessor/Rules.php
@@ -9,8 +9,10 @@
  * @package Piwik
  */
 use Piwik\Config;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * This class contains Archiving rules/logic which are used in several places
@@ -137,7 +139,7 @@ class Piwik_ArchiveProcessor_Rules
         return false;
     }
 
-    public static function getMinTimeProcessedForTemporaryArchive(Piwik_Date $dateStart, Piwik_Period $period, Piwik_Segment $segment, Piwik_Site $site)
+    public static function getMinTimeProcessedForTemporaryArchive(Piwik_Date $dateStart, Period $period, Piwik_Segment $segment, Site $site)
     {
         $now = time();
         $minimumArchiveTime = $now - Piwik_ArchiveProcessor_Rules::getTodayArchiveTimeToLive();
diff --git a/core/Controller.php b/core/Controller.php
index 55857f7ce81b48107987b258e8137bbe6f629d76..06d946ad56fd4b978c5f20d54a80c863ea61c6cd 100644
--- a/core/Controller.php
+++ b/core/Controller.php
@@ -9,9 +9,12 @@
  * @package Piwik
  */
 use Piwik\Config;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Access;
+use Piwik\Site;
+
 
 /**
  * Parent class of all plugins Controllers (located in /plugins/PluginName/Controller.php
@@ -47,7 +50,7 @@ abstract class Piwik_Controller
     protected $idSite;
 
     /**
-     * @var Piwik_Site
+     * @var Site
      */
     protected $site = null;
 
@@ -66,7 +69,7 @@ abstract class Piwik_Controller
         $date = Common::getRequestVar('date', 'yesterday', 'string');
         try {
             $this->idSite = Common::getRequestVar('idSite', false, 'int');
-            $this->site = new Piwik_Site($this->idSite);
+            $this->site = new Site($this->idSite);
             $date = $this->getDateParameterInTimezone($date, $this->site->getTimezone());
             $this->setDate($date);
         } catch (Exception $e) {
@@ -290,7 +293,7 @@ abstract class Piwik_Controller
      * @param string $period
      * @param string $lastN
      * @param string $endDate
-     * @param Piwik_Site $site
+     * @param Site $site
      * @return string
      */
     public static function getDateRangeRelativeToEndDate($period, $lastN, $endDate, $site)
@@ -401,7 +404,7 @@ abstract class Piwik_Controller
             $periodStr = Common::getRequestVar('period');
             if ($periodStr != 'range') {
                 $date = Piwik_Date::factory($this->strDate);
-                $period = Piwik_Period::factory($periodStr, $date);
+                $period = Period::factory($periodStr, $date);
             } else {
                 $period = new Piwik_Period_Range($periodStr, $rawDate, $this->site->getTimezone());
             }
@@ -671,7 +674,7 @@ abstract class Piwik_Controller
     /**
      * Returns default website that Piwik should load
      *
-     * @return Piwik_Site
+     * @return Site
      */
     protected function getDefaultWebsiteId()
     {
@@ -759,7 +762,7 @@ abstract class Piwik_Controller
     /**
      * Returns pretty date for use in period selector widget.
      *
-     * @param Piwik_Period $period
+     * @param Period $period
      * @return string
      */
     public static function getCalendarPrettyDate($period)
@@ -782,7 +785,7 @@ abstract class Piwik_Controller
      */
     public static function getPrettyDate($date, $period)
     {
-        return self::getCalendarPrettyDate(Piwik_Period::factory($period, Piwik_Date::factory($date)));
+        return self::getCalendarPrettyDate(Period::factory($period, Piwik_Date::factory($date)));
     }
 
 
diff --git a/core/DataAccess/ArchiveSelector.php b/core/DataAccess/ArchiveSelector.php
index 1eac19955c827dc4254841562901c349e3bccf67..54d18596d635dcb030f8b346933737c517a532e2 100644
--- a/core/DataAccess/ArchiveSelector.php
+++ b/core/DataAccess/ArchiveSelector.php
@@ -8,8 +8,10 @@
  * @category Piwik
  * @package Piwik
  */
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * Data Access object used to query archives
@@ -31,7 +33,7 @@ class Piwik_DataAccess_ArchiveSelector
 
     const NB_VISITS_CONVERTED_RECORD_LOOKED_UP = "nb_visits_converted";
 
-    static public function getArchiveIdAndVisits(Piwik_Site $site, Piwik_Period $period, Piwik_Segment $segment, $minDatetimeArchiveProcessedUTC, $requestedPlugin)
+    static public function getArchiveIdAndVisits(Site $site, Period $period, Piwik_Segment $segment, $minDatetimeArchiveProcessedUTC, $requestedPlugin)
     {
         $dateStart = $period->getDateStart();
         $bindSQL = array($site->getId(),
@@ -146,7 +148,7 @@ class Piwik_DataAccess_ArchiveSelector
 
         $monthToPeriods = array();
         foreach ($periods as $period) {
-            /** @var Piwik_Period $period */
+            /** @var Period $period */
             $table = Piwik_DataAccess_ArchiveTableCreator::getNumericTable($period->getDateStart());
             $monthToPeriods[$table][] = $period;
         }
diff --git a/core/DataAccess/ArchiveWriter.php b/core/DataAccess/ArchiveWriter.php
index f864af9ae19c3b48b9a12907c92fc655a9a6208b..bcd14e51c74501def5a1a57399e2c53edaa79a54 100644
--- a/core/DataAccess/ArchiveWriter.php
+++ b/core/DataAccess/ArchiveWriter.php
@@ -9,6 +9,7 @@
  * @package Piwik
  */
 use Piwik\Config;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
 
@@ -30,7 +31,7 @@ class Piwik_DataAccess_ArchiveWriter
                               'name',
                               'value');
 
-    public function __construct($idSite, Piwik_Segment $segment, Piwik_Period $period, $requestedPlugin, $isArchiveTemporary)
+    public function __construct($idSite, Piwik_Segment $segment, Period $period, $requestedPlugin, $isArchiveTemporary)
     {
         $this->idArchive = false;
         $this->idSite = $idSite;
@@ -113,7 +114,7 @@ class Piwik_DataAccess_ArchiveWriter
         return self::makeLockName($this->idSite, $this->period, $this->segment);
     }
 
-    protected static function makeLockName($idsite, Piwik_Period $period, Piwik_Segment $segment)
+    protected static function makeLockName($idsite, Period $period, Piwik_Segment $segment)
     {
         $config = Config::getInstance();
 
diff --git a/core/DataAccess/LogAggregator.php b/core/DataAccess/LogAggregator.php
index 8be8a516f24c296e4e529d89a41ca8fba3716cb2..0d51091fc7e9d5969d61be429b15775b45d6e488 100644
--- a/core/DataAccess/LogAggregator.php
+++ b/core/DataAccess/LogAggregator.php
@@ -9,6 +9,7 @@
  * @package Piwik
  */
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * This class queries the Visitor logs tables (visits, actions, conversions, ecommerce)
@@ -50,13 +51,13 @@ class Piwik_DataAccess_LogAggregator
     /** @var \Piwik_Date */
     protected $dateEnd;
 
-    /** @var \Piwik_Site */
+    /** @var \Piwik\Site */
     protected $site;
 
     /** @var \Piwik_Segment */
     protected $segment;
 
-    public function __construct(Piwik_Date $dateStart, Piwik_Date $dateEnd, Piwik_Site $site, Piwik_Segment $segment)
+    public function __construct(Piwik_Date $dateStart, Piwik_Date $dateEnd, Site $site, Piwik_Segment $segment)
     {
         $this->dateStart = $dateStart;
         $this->dateEnd = $dateEnd;
diff --git a/core/DataTable/Filter/CalculateEvolutionFilter.php b/core/DataTable/Filter/CalculateEvolutionFilter.php
index f4ad1ea480c1db4947c665299dc9d081d78548f0..e38fb9313669cb94aa0f728231dfaeb703acd722 100755
--- a/core/DataTable/Filter/CalculateEvolutionFilter.php
+++ b/core/DataTable/Filter/CalculateEvolutionFilter.php
@@ -8,6 +8,7 @@
  * @category Piwik
  * @package Piwik
  */
+use Piwik\Site;
 
 /**
  * A DataTable filter that calculates the evolution of a metric and adds
@@ -66,7 +67,7 @@ class Piwik_DataTable_Filter_CalculateEvolutionFilter extends Piwik_DataTable_Fi
         // we don't add the new column
         if ($currentValue === false
             && $this->isRevenueEvolution
-            && !Piwik_Site::isEcommerceEnabledFor($row->getColumn('label'))
+            && !Site::isEcommerceEnabledFor($row->getColumn('label'))
         ) {
             return false;
         }
diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php
index 0e1a3f39d49c253b01c0ba11273b2aa8d2b66c48..77d282f65900fb480a986779eaf588781c6a4308 100644
--- a/core/DataTable/Renderer/Csv.php
+++ b/core/DataTable/Renderer/Csv.php
@@ -8,6 +8,7 @@
  * @category Piwik
  * @package Piwik
  */
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
 
@@ -354,7 +355,7 @@ class Piwik_DataTable_Renderer_Csv extends Piwik_DataTable_Renderer
             } else if (strpos($date, ',') !== false) {
                 $period = new Piwik_Period_Range('range', $date);
             } else {
-                $period = Piwik_Period::factory($period, Piwik_Date::factory($date));
+                $period = Period::factory($period, Piwik_Date::factory($date));
             }
 
             $prettyDate = $period->getLocalizedLongString();
diff --git a/core/Period.php b/core/Period.php
index 01705ccbe7f19aaff1c5c5d416d12b0c0f63e155..6e74ad40952f6b34c65680254831991cd0967918 100644
--- a/core/Period.php
+++ b/core/Period.php
@@ -8,10 +8,18 @@
  * @category Piwik
  * @package Piwik
  */
+namespace Piwik;
+use Exception;
 use Piwik\Piwik;
+use Piwik_Date;
+use Piwik_Period_Day;
+use Piwik_Period_Month;
+use Piwik_Period_Range;
+use Piwik_Period_Week;
+use Piwik_Period_Year;
 
 /**
- * Creating a new Piwik_Period subclass:
+ * Creating a new Period subclass:
  *
  * Every overloaded method must start with the code
  *        if(!$this->subperiodsProcessed)
@@ -22,13 +30,13 @@ use Piwik\Piwik;
  *    This is for performance improvements, computing the subperiods is done a per demand basis.
  *
  * @package Piwik
- * @subpackage Piwik_Period
+ * @subpackage Period
  */
-abstract class Piwik_Period
+abstract class Period
 {
     /**
      * Array of subperiods
-     * @var Piwik_Period[]
+     * @var \Piwik\Period[]
      */
     protected $subperiods = array();
     protected $subperiodsProcessed = false;
@@ -58,7 +66,7 @@ abstract class Piwik_Period
      * @param string $strPeriod "day", "week", "month", "year"
      * @param Piwik_Date $date Piwik_Date object
      * @throws Exception
-     * @return Piwik_Period
+     * @return \Piwik\Period
      */
     static public function factory($strPeriod, Piwik_Date $date)
     {
@@ -85,7 +93,6 @@ abstract class Piwik_Period
         }
     }
 
-
     /**
      * Indicate if $dateString and $period correspond to multiple periods
      *
@@ -108,29 +115,28 @@ abstract class Piwik_Period
      * method above. It doesn't require an instance of Piwik_Date and works for
      * period=range. Generally speaking, anything that can be passed as period
      * and range to the API methods can directly be forwarded to this factory
-     * method in order to get a suitable instance of Piwik_Period.
+     * method in order to get a suitable instance of Period.
      *
      * @param string $strPeriod "day", "week", "month", "year", "range"
      * @param string $strDate
-     * @return Piwik_Period
+     * @return \Piwik\Period
      */
     static public function advancedFactory($strPeriod, $strDate)
     {
-        if (Piwik_Period::isMultiplePeriod($strDate, $strPeriod) || $strPeriod == 'range') {
+        if (Period::isMultiplePeriod($strDate, $strPeriod) || $strPeriod == 'range') {
             return new Piwik_Period_Range($strPeriod, $strDate);
         }
-        return Piwik_Period::factory($strPeriod, Piwik_Date::factory($strDate));
+        return Period::factory($strPeriod, Piwik_Date::factory($strDate));
     }
 
-
     /**
-     * Creates a period instance using a Piwik_Site instance and two strings describing
+     * Creates a period instance using a Site instance and two strings describing
      * the period & date.
      *
      * @param string $timezone
      * @param string $period The period string: day, week, month, year, range
      * @param string $date The date or date range string.
-     * @return Piwik_Period
+     * @return \Piwik\Period
      */
     public static function makePeriodFromQueryParams($timezone, $period, $date)
     {
@@ -144,12 +150,12 @@ abstract class Piwik_Period
             if (!($date instanceof Piwik_Date)) {
                 if ($date == 'now' || $date == 'today') {
                     $date = date('Y-m-d', Piwik_Date::factory('now', $timezone)->getTimestamp());
-                } elseif ($date == 'yesterday' || $date == 'yesterdaySameTime' ) {
+                } elseif ($date == 'yesterday' || $date == 'yesterdaySameTime') {
                     $date = date('Y-m-d', Piwik_Date::factory('now', $timezone)->subDay(1)->getTimestamp());
                 }
-                $date = Piwik_Date::factory( $date );
+                $date = Piwik_Date::factory($date);
             }
-            $oPeriod = Piwik_Period::factory($period, $date);
+            $oPeriod = Period::factory($period, $date);
         }
         return $oPeriod;
     }
@@ -255,7 +261,7 @@ abstract class Piwik_Period
      * Returns Period_Day for a period made of days (week, month),
      *            Period_Month for a period made of months (year)
      *
-     * @return array Piwik_Period
+     * @return array Period
      */
     public function getSubperiods()
     {
@@ -270,7 +276,7 @@ abstract class Piwik_Period
      *
      * Protected because it not yet supported to add periods after the initialization
      *
-     * @param Piwik_Period $period Valid Piwik_Period object
+     * @param \Piwik\Period $period Valid Period object
      */
     protected function addSubperiod($period)
     {
@@ -315,9 +321,9 @@ abstract class Piwik_Period
     abstract public function getLocalizedShortString();
 
     abstract public function getLocalizedLongString();
-    
+
     public function getRangeString()
     {
-        return $this->getDateStart()->toString("Y-m-d").",".$this->getDateEnd()->toString("Y-m-d");
+        return $this->getDateStart()->toString("Y-m-d") . "," . $this->getDateEnd()->toString("Y-m-d");
     }
 }
diff --git a/core/Period/Day.php b/core/Period/Day.php
index 14cdd16bd73f461ad3efbe2aa9eef6a43f5f0a04..198662dbe7a2c75d8310b072f8188144b8da91cc 100644
--- a/core/Period/Day.php
+++ b/core/Period/Day.php
@@ -8,12 +8,13 @@
  * @category Piwik
  * @package Piwik
  */
+use Piwik\Period;
 
 /**
  * @package Piwik
- * @subpackage Piwik_Period
+ * @subpackage Period
  */
-class Piwik_Period_Day extends Piwik_Period
+class Piwik_Period_Day extends Period
 {
     protected $label = 'day';
 
diff --git a/core/Period/Month.php b/core/Period/Month.php
index fdb8a78dbcde4d4a124faa908073bec19255efd0..c65bc4179e086ae524995a20a0fbea61016f6a4a 100644
--- a/core/Period/Month.php
+++ b/core/Period/Month.php
@@ -8,12 +8,13 @@
  * @category Piwik
  * @package Piwik
  */
+use Piwik\Period;
 
 /**
  * @package Piwik
- * @subpackage Piwik_Period
+ * @subpackage Period
  */
-class Piwik_Period_Month extends Piwik_Period
+class Piwik_Period_Month extends Period
 {
     protected $label = 'month';
 
diff --git a/core/Period/Range.php b/core/Period/Range.php
index f69a0d304e4fa278e39eb9207c95349659652732..e8020ad8755794c14ae3dd3efaae5d8106067829 100644
--- a/core/Period/Range.php
+++ b/core/Period/Range.php
@@ -9,14 +9,15 @@
  * @package Piwik
  */
 use Piwik\Common;
+use Piwik\Period;
 
 /**
  * from a starting date to an ending date
  *
  * @package Piwik
- * @subpackage Piwik_Period
+ * @subpackage Period
  */
-class Piwik_Period_Range extends Piwik_Period
+class Piwik_Period_Range extends Period
 {
     protected $label = 'range';
 
@@ -328,14 +329,14 @@ class Piwik_Period_Range extends Piwik_Period
     protected function fillArraySubPeriods($startDate, $endDate, $period)
     {
         $arrayPeriods = array();
-        $endSubperiod = Piwik_Period::factory($period, $endDate);
+        $endSubperiod = Period::factory($period, $endDate);
         $arrayPeriods[] = $endSubperiod;
 
         // set end date to start of end period since we're comparing against start date.
         $endDate = $endSubperiod->getDateStart();
         while ($endDate->isLater($startDate)) {
             $endDate = self::removePeriod($period, $endDate, 1);
-            $subPeriod = Piwik_Period::factory($period, $endDate);
+            $subPeriod = Period::factory($period, $endDate);
             $arrayPeriods[] = $subPeriod;
         }
         $arrayPeriods = array_reverse($arrayPeriods);
@@ -351,7 +352,7 @@ class Piwik_Period_Range extends Piwik_Period
      * @param bool|string $period The period to use (either 'day', 'week', 'month', 'year');
      *
      * @return array An array with two elements, a string for the date before $date and
-     *               a Piwik_Period instance for the period before $date.
+     *               a Period instance for the period before $date.
      */
     public static function getLastDate($date = false, $period = false)
     {
diff --git a/core/Period/Week.php b/core/Period/Week.php
index 9b84f05b110ffc2952149cca43112f565e9db86c..1933a0aa5ceae1d90177b6c8e92645642ebcfd31 100644
--- a/core/Period/Week.php
+++ b/core/Period/Week.php
@@ -8,12 +8,13 @@
  * @category Piwik
  * @package Piwik
  */
+use Piwik\Period;
 
 /**
  * @package Piwik
- * @subpackage Piwik_Period
+ * @subpackage Period
  */
-class Piwik_Period_Week extends Piwik_Period
+class Piwik_Period_Week extends Period
 {
     protected $label = 'week';
 
diff --git a/core/Period/Year.php b/core/Period/Year.php
index 7ab5efbabe672270cd631d3343e01de921fb6cee..d83e2ac84244bdbef4ba7d164a4aef515c3513d0 100644
--- a/core/Period/Year.php
+++ b/core/Period/Year.php
@@ -8,12 +8,13 @@
  * @category Piwik
  * @package Piwik
  */
+use Piwik\Period;
 
 /**
  * @package Piwik
- * @subpackage Piwik_Period
+ * @subpackage Period
  */
-class Piwik_Period_Year extends Piwik_Period
+class Piwik_Period_Year extends Period
 {
     protected $label = 'year';
 
diff --git a/core/Piwik.php b/core/Piwik.php
index 0e07c888ca849e05c3ead11630e438b140d2f396..4e87890aa3015c3d3dba772f571e3fa8e83941e5 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -26,7 +26,7 @@ use Piwik_Log_Message;
 use Piwik_Plugin;
 use Piwik_PluginsManager;
 use Piwik_Session;
-use Piwik_Site;
+use Piwik\Site;
 use Piwik_Tracker;
 use Piwik_Tracker_Cache;
 use Piwik_Tracker_Db;
@@ -1311,7 +1311,7 @@ class Piwik
     static public function getCurrency($idSite)
     {
         $symbols = self::getCurrencyList();
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         $currency = $site->getCurrency();
         if (isset($symbols[$currency])) {
             return $symbols[$currency][0];
diff --git a/core/Site.php b/core/Site.php
index f341aa72088bfd8103067519953abf10633308d1..da655b9a74f6c19db357d8dd400bc51beaefc3be 100644
--- a/core/Site.php
+++ b/core/Site.php
@@ -9,11 +9,16 @@
  * @package Piwik
  */
 
+namespace Piwik;
+use Exception;
+use Piwik_Date;
+use Piwik_SitesManager_API;
+
 /**
  *
  * @package Piwik
  */
-class Piwik_Site
+class Site
 {
     /**
      * @var int|null
diff --git a/core/ViewDataTable.php b/core/ViewDataTable.php
index be9770ce6d777d2663c0ab3ffea1fdbd3660ce2e..05b59f0b2991f82351693f7ba9c3dadacb660afa 100644
--- a/core/ViewDataTable.php
+++ b/core/ViewDataTable.php
@@ -9,8 +9,10 @@
  * @package Piwik
  */
 use Piwik\Config;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * This class is used to load (from the API) and customize the output of a given DataTable.
@@ -1527,7 +1529,7 @@ abstract class Piwik_ViewDataTable
             if ($strPeriod == 'range') {
                 $idSite = Common::getRequestVar('idSite', '');
                 if (intval($idSite) != 0) {
-                    $site = new Piwik_Site($idSite);
+                    $site = new Site($idSite);
                     $timezone = $site->getTimezone();
                 } else {
                     $timezone = 'UTC';
@@ -1536,7 +1538,7 @@ abstract class Piwik_ViewDataTable
                 $period = new Piwik_Period_Range('range', $strDate, $timezone);
                 $reportDate = $period->getDateStart();
             } // if a multiple period, this function is irrelevant
-            else if (Piwik_Period::isMultiplePeriod($strDate, $strPeriod)) {
+            else if (Period::isMultiplePeriod($strDate, $strPeriod)) {
                 return false;
             } // otherwise, use the date as given
             else {
diff --git a/core/ViewDataTable/GenerateGraphHTML/ChartEvolution.php b/core/ViewDataTable/GenerateGraphHTML/ChartEvolution.php
index 125c1c92ed65d1df616bb2c2bf056a80cd49b14d..9fd005e1329cc258ed8ed73e2a3cebadf3964b43 100644
--- a/core/ViewDataTable/GenerateGraphHTML/ChartEvolution.php
+++ b/core/ViewDataTable/GenerateGraphHTML/ChartEvolution.php
@@ -10,6 +10,7 @@
  */
 
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * Generates HTML embed for the Evolution graph
@@ -132,7 +133,7 @@ class Piwik_ViewDataTable_GenerateGraphHTML_ChartEvolution extends Piwik_ViewDat
         $lastNParamName = self::getLastNParamName($period);
         $lastN = Common::getRequestVar($lastNParamName, $defaultLastN, 'int');
 
-        $site = new Piwik_Site(Common::getRequestVar('idSite'));
+        $site = new Site(Common::getRequestVar('idSite'));
 
         $dateRange = Piwik_Controller::getDateRangeRelativeToEndDate($period, 'last' . $lastN, $endDate, $site);
 
diff --git a/core/ViewDataTable/HtmlTable/Goals.php b/core/ViewDataTable/HtmlTable/Goals.php
index dbe8fc8338e0ed6caf3dfb54326ba4a35c74126c..4fa4980d7207a47c79d7cba103bae69023ffefb5 100644
--- a/core/ViewDataTable/HtmlTable/Goals.php
+++ b/core/ViewDataTable/HtmlTable/Goals.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * @package Piwik
@@ -114,7 +115,7 @@ class Piwik_ViewDataTable_HtmlTable_Goals extends Piwik_ViewDataTable_HtmlTable
                 'name'   => Piwik_Translate('Goals_EcommerceOrder')
             );
 
-            $site = new Piwik_Site($idSite);
+            $site = new Site($idSite);
             //Case Ecommerce report table
             if ($this->isEcommerce) {
                 $goals = array($ecommerceGoal);
diff --git a/plugins/API/ProcessedReport.php b/plugins/API/ProcessedReport.php
index 70b51f91a55e250c3680d25f7537f56429bf2fd2..1788ce79c85313f87bed47d87487fcbe7c7c2b42 100644
--- a/plugins/API/ProcessedReport.php
+++ b/plugins/API/ProcessedReport.php
@@ -1,6 +1,8 @@
 <?php
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * Piwik - Open source web analytics
@@ -64,7 +66,7 @@ class Piwik_API_ProcessedReport
      */
     public function getReportMetadata($idSites, $period = false, $date = false, $hideMetricsDoc = false, $showSubtableReports = false)
     {
-        $idSites = Piwik_Site::getIdSitesFromIdSitesString($idSites);
+        $idSites = Site::getIdSitesFromIdSitesString($idSites);
         if (!empty($idSites)) {
             Piwik::checkUserHasViewAccess($idSites);
         }
@@ -279,9 +281,9 @@ class Piwik_API_ProcessedReport
         foreach ($columns as $columnId => &$name) {
             $name = ucfirst($name);
         }
-        $website = new Piwik_Site($idSite);
+        $website = new Site($idSite);
 
-        $period = Piwik_Period::advancedFactory($period, $date);
+        $period = Period::advancedFactory($period, $date);
         $period = $period->getLocalizedLongString();
 
         $return = array(
diff --git a/plugins/API/RowEvolution.php b/plugins/API/RowEvolution.php
index ba6a63bdb8ee0f27462334a8b13ca963d3e9a7b4..cd7f469b94dc30d5d9eeeb518349fc65b88a840e 100644
--- a/plugins/API/RowEvolution.php
+++ b/plugins/API/RowEvolution.php
@@ -8,6 +8,7 @@
  * @category Piwik_Plugins
  * @package Piwik_API
  */
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
 
@@ -27,7 +28,7 @@ class Piwik_API_RowEvolution
             $period = 'day';
         }
 
-        if (!Piwik_Period::isMultiplePeriod($date, $period)) {
+        if (!Period::isMultiplePeriod($date, $period)) {
             throw new Exception("Row evolutions can not be processed with this combination of \'date\' and \'period\' parameters.");
         }
 
diff --git a/plugins/Actions/Actions.php b/plugins/Actions/Actions.php
index 103672f37be274927b5f683e3f59ef2af29f14fb..cb8716aba050680a76ece6237738630e81a92354 100644
--- a/plugins/Actions/Actions.php
+++ b/plugins/Actions/Actions.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * Actions plugin
@@ -561,7 +562,7 @@ class Piwik_Actions extends Piwik_Plugin
         if ($idSite == 0) {
             return false;
         }
-        return Piwik_Site::isSiteSearchEnabledFor($idSite);
+        return Site::isSiteSearchEnabledFor($idSite);
     }
 
     /**
diff --git a/plugins/Annotations/API.php b/plugins/Annotations/API.php
index 92dd4f18e43620dc78191da37ca732f026ee95bc..faa7d76c9792e8bbc577fc035c564e67c2ac696e 100755
--- a/plugins/Annotations/API.php
+++ b/plugins/Annotations/API.php
@@ -8,6 +8,7 @@
  * @category Piwik_Plugins
  * @package Piwik_Annotations
  */
+use Piwik\Period;
 use Piwik\Piwik;
 
 /**
@@ -318,7 +319,7 @@ class Piwik_Annotations_API
             if ($period == 'range') {
                 $oPeriod = new Piwik_Period_Range('day', $date);
             } else {
-                $oPeriod = Piwik_Period::factory($period, Piwik_Date::factory($date));
+                $oPeriod = Period::factory($period, Piwik_Date::factory($date));
             }
 
             $startDate = $oPeriod->getDateStart();
diff --git a/plugins/Annotations/AnnotationList.php b/plugins/Annotations/AnnotationList.php
index 0b0ca1ea44327cce13961442553d22ea8c89efd9..4d15e91e50f3451bf69b56804423ae95ca6cb9bb 100755
--- a/plugins/Annotations/AnnotationList.php
+++ b/plugins/Annotations/AnnotationList.php
@@ -9,6 +9,7 @@
  * @package Piwik_Annotations
  */
 use Piwik\Piwik;
+use Piwik\Site;
 
 /**
  * This class can be used to query & modify annotations for multiple sites
@@ -52,7 +53,7 @@ class Piwik_Annotations_AnnotationList
      */
     public function __construct($idSites)
     {
-        $this->idSites = Piwik_Site::getIdSitesFromIdSitesString($idSites);
+        $this->idSites = Site::getIdSitesFromIdSitesString($idSites);
         $this->annotations = $this->getAnnotationsForSite();
     }
 
@@ -214,7 +215,7 @@ class Piwik_Annotations_AnnotationList
     public function search($startDate, $endDate, $idSite = false)
     {
         if ($idSite) {
-            $idSites = Piwik_Site::getIdSitesFromIdSitesString($idSite);
+            $idSites = Site::getIdSitesFromIdSitesString($idSite);
         } else {
             $idSites = array_keys($this->annotations);
         }
diff --git a/plugins/CoreAdminHome/API.php b/plugins/CoreAdminHome/API.php
index d192c17ca7f771ebbe1dd00ac084862a3241733b..d9bf9b4cee65b1772a4a4cb4aa4d50288a8cf2c6 100644
--- a/plugins/CoreAdminHome/API.php
+++ b/plugins/CoreAdminHome/API.php
@@ -8,8 +8,10 @@
  * @category Piwik_Plugins
  * @package Piwik_CoreAdminHome
  */
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * @package Piwik_CoreAdminHome
@@ -71,7 +73,7 @@ class Piwik_CoreAdminHome_API
      */
     public function invalidateArchivedReports($idSites, $dates)
     {
-        $idSites = Piwik_Site::getIdSitesFromIdSitesString($idSites);
+        $idSites = Site::getIdSitesFromIdSitesString($idSites);
         if (empty($idSites)) {
             throw new Exception("Specify a value for &idSites= as a comma separated list of website IDs, for which your token_auth has 'admin' permission");
         }
@@ -130,7 +132,7 @@ class Piwik_CoreAdminHome_API
 
             // but also weeks overlapping several months stored in the month where the week is starting
             /* @var $week Piwik_Period_Week */
-            $week = Piwik_Period::factory('week', $date);
+            $week = Period::factory('week', $date);
             $weekAsString = $week->getDateStart()->toString('Y_m');
             $datesByMonth[$weekAsString][] = $date->toString();
 
@@ -186,7 +188,7 @@ class Piwik_CoreAdminHome_API
         $invalidatedIdSites = array_values($invalidatedIdSites);
         Piwik_SetOption(self::OPTION_INVALIDATED_IDSITES, serialize($invalidatedIdSites));
 
-        Piwik_Site::clearCache();
+        Site::clearCache();
 
         $output = array();
         // output logs
diff --git a/plugins/CoreAdminHome/Controller.php b/plugins/CoreAdminHome/Controller.php
index 1cc8afb6c4ae00c361e4e663677b3695f6e5a019..612a9e1c3e3f0e08577541637d563c401732a07f 100644
--- a/plugins/CoreAdminHome/Controller.php
+++ b/plugins/CoreAdminHome/Controller.php
@@ -11,6 +11,7 @@
 use Piwik\Config;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -137,7 +138,7 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin
         $defaultIdSite = reset($viewableIdSites);
         $view->idSite = Common::getRequestVar('idSite', $defaultIdSite, 'int');
 
-        $view->defaultReportSiteName = Piwik_Site::getNameFor($view->idSite);
+        $view->defaultReportSiteName = Site::getNameFor($view->idSite);
         $view->defaultSiteRevenue = Piwik::getCurrency($view->idSite);
 
         $allUrls = Piwik_SitesManager_API::getInstance()->getSiteUrlsFromId($view->idSite);
@@ -148,7 +149,7 @@ class Piwik_CoreAdminHome_Controller extends Piwik_Controller_Admin
         }
         $view->defaultReportSiteAlias = $aliasUrl;
 
-        $mainUrl = Piwik_Site::getMainUrlFor($view->idSite);
+        $mainUrl = Site::getMainUrlFor($view->idSite);
         $view->defaultReportSiteDomain = @parse_url($mainUrl, PHP_URL_HOST);
 
         // get currencies for each viewable site
diff --git a/plugins/CoreHome/Controller.php b/plugins/CoreHome/Controller.php
index d6afe9e354f4c7034748bbb2faf22d3a882e314a..ded8a80658161b3fce3b1c50c8d0dc9e657f8522 100644
--- a/plugins/CoreHome/Controller.php
+++ b/plugins/CoreHome/Controller.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -73,7 +74,7 @@ class Piwik_CoreHome_Controller extends Piwik_Controller
         }
         $websiteId = Common::getRequestVar('idSite', false, 'int');
         if ($websiteId) {
-            $website = new Piwik_Site($websiteId);
+            $website = new Site($websiteId);
             $datetimeCreationDate = $this->site->getCreationDate()->getDatetime();
             $creationDateLocalTimezone = Piwik_Date::factory($datetimeCreationDate, $website->getTimezone())->toString('Y-m-d');
             $todayLocalTimezone = Piwik_Date::factory('now', $website->getTimezone())->toString('Y-m-d');
diff --git a/plugins/Dashboard/Dashboard.php b/plugins/Dashboard/Dashboard.php
index 6c8a4830b1c55d45152e0ae30071351082c820bd..7548104be9d310433032dae8cb3037fde0474fc5 100644
--- a/plugins/Dashboard/Dashboard.php
+++ b/plugins/Dashboard/Dashboard.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * @package Piwik_Dashboard
@@ -212,7 +213,7 @@ class Piwik_Dashboard extends Piwik_Plugin
         $tooltip = false;
         try {
             $idSite = Common::getRequestVar('idSite');
-            $tooltip = Piwik_Translate('Dashboard_TopLinkTooltip', Piwik_Site::getNameFor($idSite));
+            $tooltip = Piwik_Translate('Dashboard_TopLinkTooltip', Site::getNameFor($idSite));
         } catch (Exception $ex) {
             // if no idSite parameter, show no tooltip
         }
diff --git a/plugins/ExamplePlugin/Controller.php b/plugins/ExamplePlugin/Controller.php
index 33b8e1d605cf74c18df48f4ef5df4d9b2dd625ae..7ff7a79042840655f9e8516174c6139272a3f658 100644
--- a/plugins/ExamplePlugin/Controller.php
+++ b/plugins/ExamplePlugin/Controller.php
@@ -76,7 +76,7 @@ class Piwik_ExamplePlugin_Controller extends Piwik_Controller
         $out .= '<code>$this->date</code> = current selected <b>Piwik_Date</b> object (<a href="https://github.com/piwik/piwik/blob/master/core/Date.php">class</a>)<br />';
         $out .= '<code>$period = Common::getRequestVar("period");</code> - Get the current selected period<br />';
         $out .= '<code>$idSite = Common::getRequestVar("idSite");</code> - Get the selected idSite<br />';
-        $out .= '<code>$site = new Piwik_Site($idSite);</code> - Build the Piwik_Site object (<a href="https://github.com/piwik/piwik/tree/master/core/Site.php">class</a>)<br />';
+        $out .= '<code>$site = new Site($idSite);</code> - Build the Site object (<a href="https://github.com/piwik/piwik/tree/master/core/Site.php">class</a>)<br />';
         $out .= '<code>$this->str_date</code> = current selected date in YYYY-MM-DD format<br />';
 
         $out .= '<h3>Misc</h3>';
diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php
index 98bfacd0b6d18eda86bb53ec424990ba93d41047..aeffa5583b46258ecb87cbc4b9b7c09663b88403 100644
--- a/plugins/Goals/API.php
+++ b/plugins/Goals/API.php
@@ -11,6 +11,7 @@
 use Piwik\Archive;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * Goals API lets you Manage existing goals, via "updateGoal" and "deleteGoal", create new Goals via "addGoal",
@@ -57,7 +58,7 @@ class Piwik_Goals_API
     {
         //TODO calls to this function could be cached as static
         // would help UI at least, since some UI requests would call this 2-3 times..
-        $idSite = Piwik_Site::getIdSitesFromIdSitesString($idSite);
+        $idSite = Site::getIdSitesFromIdSitesString($idSite);
         if (empty($idSite)) {
             return array();
         }
diff --git a/plugins/Goals/Goals.php b/plugins/Goals/Goals.php
index e612295dc1c79f6378789af64963dcdd9017fe94..dc3445cb882e18c2e505cc4f2bb1fc1d7fce8c8e 100644
--- a/plugins/Goals/Goals.php
+++ b/plugins/Goals/Goals.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -216,7 +217,7 @@ class Piwik_Goals extends Piwik_Plugin
                 );
             }
 
-            $site = new Piwik_Site($idSite);
+            $site = new Site($idSite);
             if ($site->isEcommerceEnabled()) {
                 $category = Piwik_Translate('Goals_Ecommerce');
                 $ecommerceMetrics = array_merge($goalMetrics, array(
@@ -413,7 +414,7 @@ class Piwik_Goals extends Piwik_Plugin
         $idSite = Common::getRequestVar('idSite', null, 'int');
 
         // Ecommerce widgets
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         if ($site->isEcommerceEnabled()) {
             Piwik_AddWidget('Goals_Ecommerce', 'Goals_EcommerceOverview', 'Goals', 'widgetGoalReport', array('idGoal' => Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER));
             Piwik_AddWidget('Goals_Ecommerce', 'Goals_EcommerceLog', 'Goals', 'getEcommerceLog');
@@ -437,7 +438,7 @@ class Piwik_Goals extends Piwik_Plugin
         $idSite = Common::getRequestVar('idSite', null, 'int');
         $goals = Piwik_Goals_API::getInstance()->getGoals($idSite);
         $mainGoalMenu = $this->getGoalCategoryName($idSite);
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         if (count($goals) == 0) {
             Piwik_AddMenu($mainGoalMenu, '', array(
                                                   'module' => 'Goals',
@@ -469,7 +470,7 @@ class Piwik_Goals extends Piwik_Plugin
 
     protected function getGoalCategoryName($idSite)
     {
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         return $site->isEcommerceEnabled() ? 'Goals_EcommerceAndGoalsMenu' : 'Goals_Goals';
     }
 
diff --git a/plugins/ImageGraph/API.php b/plugins/ImageGraph/API.php
index 4087b7a18dfc0e9050623dcd82fc8198435b38f5..dd6967b56b9eec4aabcdf61b4cb524fdfa0ac899 100644
--- a/plugins/ImageGraph/API.php
+++ b/plugins/ImageGraph/API.php
@@ -8,6 +8,7 @@
  * @category Piwik_Plugins
  * @package Piwik_ImageGraph
  */
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
 
@@ -171,7 +172,7 @@ class Piwik_ImageGraph_API
             $reportHasDimension = !empty($metadata['dimension']);
             $constantRowsCount = !empty($metadata['constantRowsCount']);
 
-            $isMultiplePeriod = Piwik_Period::isMultiplePeriod($date, $period);
+            $isMultiplePeriod = Period::isMultiplePeriod($date, $period);
             if (!$reportHasDimension && !$isMultiplePeriod) {
                 throw new Exception('The graph cannot be drawn for this combination of \'date\' and \'period\' parameters.');
             }
diff --git a/plugins/ImageGraph/ImageGraph.php b/plugins/ImageGraph/ImageGraph.php
index 60ff3dc27c7dc27b60107ec5bbf2998ee173134a..73743ccbba582d3aacb40a2a06590ecc410eea6b 100644
--- a/plugins/ImageGraph/ImageGraph.php
+++ b/plugins/ImageGraph/ImageGraph.php
@@ -1,5 +1,7 @@
 <?php
 use Piwik\Common;
+use Piwik\Period;
+use Piwik\Site;
 
 /**
  * Piwik - Open source web analytics
@@ -70,7 +72,7 @@ class Piwik_ImageGraph extends Piwik_Plugin
         }
 
         // need two sets of period & date, one for single period graphs, one for multiple periods graphs
-        if (Piwik_Period::isMultiplePeriod($info['date'], $info['period'])) {
+        if (Period::isMultiplePeriod($info['date'], $info['period'])) {
             $periodForMultiplePeriodGraph = $info['period'];
             $dateForMultiplePeriodGraph = $info['date'];
 
@@ -80,7 +82,7 @@ class Piwik_ImageGraph extends Piwik_Plugin
             $periodForSinglePeriodGraph = $info['period'];
             $dateForSinglePeriodGraph = $info['date'];
 
-            $piwikSite = new Piwik_Site($idSite);
+            $piwikSite = new Site($idSite);
             if ($periodForSinglePeriodGraph == 'range') {
                 $periodForMultiplePeriodGraph = Config::getInstance()->General['graphs_default_period_to_plot_when_period_range'];
                 $dateForMultiplePeriodGraph = $dateForSinglePeriodGraph;
diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 27652141d1c9563c3560c79b9a7d540c117239a5..78bc6802bd32e3ec174ae20fe10c9dcd4445fbd3 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -9,8 +9,10 @@
  * @package Piwik_Live
  */
 use Piwik\Config;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * @see plugins/Referers/functions.php
@@ -166,7 +168,7 @@ class Piwik_Live_API
 
         $table = new Piwik_DataTable();
 
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         $timezone = $site->getTimezone();
         $currencies = Piwik_SitesManager_API::getInstance()->getCurrencySymbols();
         foreach ($visitorDetails as $visitorDetail) {
@@ -345,7 +347,7 @@ class Piwik_Live_API
 
         // SQL Filter with provided period
         if (!empty($period) && !empty($date)) {
-            $currentSite = new Piwik_Site($idSite);
+            $currentSite = new Site($idSite);
             $currentTimezone = $currentSite->getTimezone();
 
             $dateString = $date;
@@ -362,7 +364,7 @@ class Piwik_Live_API
                 ) {
                     $processedDate = $processedDate->subDay(1);
                 }
-                $processedPeriod = Piwik_Period::factory($period, $processedDate);
+                $processedPeriod = Period::factory($period, $processedDate);
             }
             $dateStart = $processedPeriod->getDateStart()->setTimezone($currentTimezone);
             $where[] = "log_visit.visit_last_action_time >= ?";
diff --git a/plugins/MobileMessaging/ReportRenderer/Sms.php b/plugins/MobileMessaging/ReportRenderer/Sms.php
index d752b50e8494195a9422ec4f6c14fced7c91ff19..68bc22691ac27069375a0eea3430249482922105 100644
--- a/plugins/MobileMessaging/ReportRenderer/Sms.php
+++ b/plugins/MobileMessaging/ReportRenderer/Sms.php
@@ -9,7 +9,7 @@
  * @package Piwik_MobileMessaging_ReportRenderer
  */
 use Piwik\Common;
-
+use Piwik\Site;
 
 /**
  *
@@ -111,7 +111,7 @@ class Piwik_MobileMessaging_ReportRenderer_Sms extends Piwik_ReportRenderer
         $siteHasECommerce = array();
         foreach ($reportRowsMetadata as $rowMetadata) {
             $idSite = $rowMetadata->getColumn('idsite');
-            $siteHasECommerce[$idSite] = Piwik_Site::isEcommerceEnabledFor($idSite);
+            $siteHasECommerce[$idSite] = Site::isEcommerceEnabledFor($idSite);
         }
 
         $view = new Piwik_View('@MobileMessaging/SMSReport');
diff --git a/plugins/MultiSites/API.php b/plugins/MultiSites/API.php
index 92d56adea7c7a2be24654684823295e20a021b76..16a544091662a84479692a282f8be003eec60de1 100755
--- a/plugins/MultiSites/API.php
+++ b/plugins/MultiSites/API.php
@@ -11,6 +11,7 @@
 use Piwik\Archive;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * The MultiSites API lets you request the key metrics (visits, page views, revenue) for all Websites in Piwik.
@@ -178,11 +179,11 @@ class Piwik_MultiSites_API
                 // Instead, we make sure that only the right set of data is returned
                 && !Piwik_TaskScheduler::isTaskBeingExecuted()
             ) {
-                Piwik_Site::setSites(
+                Site::setSites(
                     Piwik_SitesManager_API::getInstance()->getAllSites()
                 );
             } else {
-                Piwik_Site::setSitesFromArray(
+                Site::setSitesFromArray(
                     Piwik_SitesManager_API::getInstance()->getSitesWithAtLeastViewAccess($limit = false, $_restrictSitesToLogin)
                 );
             }
@@ -267,7 +268,7 @@ class Piwik_MultiSites_API
 
             foreach ($dataTableRows as $dataTableRow) {
                 $siteId = $dataTableRow->getColumn('label');
-                if (!Piwik_Site::isEcommerceEnabledFor($siteId)) {
+                if (!Site::isEcommerceEnabledFor($siteId)) {
                     foreach ($apiECommerceMetrics as $metricSettings) {
                         $dataTableRow->deleteColumn($metricSettings[self::METRIC_RECORD_NAME_KEY]);
                         $dataTableRow->deleteColumn($metricSettings[self::METRIC_EVOLUTION_COL_NAME_KEY]);
@@ -281,7 +282,7 @@ class Piwik_MultiSites_API
 
         // set the label of each row to the site name
         if ($multipleWebsitesRequested) {
-            $getNameFor = array('Piwik_Site', 'getNameFor');
+            $getNameFor = array('Site', 'getNameFor');
             $dataTable->filter('ColumnCallbackReplace', array('label', $getNameFor));
         } else {
             $dataTable->filter('ColumnDelete', array('label'));
diff --git a/plugins/MultiSites/Controller.php b/plugins/MultiSites/Controller.php
index 107f1923ce631ce8b41e364c6cfec9a7fd188f70..992cfa6be064650a8ab023287bb8d29d286a5455 100644
--- a/plugins/MultiSites/Controller.php
+++ b/plugins/MultiSites/Controller.php
@@ -8,9 +8,11 @@
  * @category Piwik_Plugins
  * @package Piwik_MultiSites
  */
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Config;
+use Piwik\Site;
 
 /**
  *
@@ -69,12 +71,12 @@ class Piwik_MultiSites_Controller extends Piwik_Controller
         // put data into a form the template will understand better
         $digestableData = array();
         foreach ($siteIds as $idSite) {
-            $isEcommerceEnabled = Piwik_Site::isEcommerceEnabledFor($idSite);
+            $isEcommerceEnabled = Site::isEcommerceEnabledFor($idSite);
 
             $digestableData[$idSite] = array(
                 'idsite'    => $idSite,
-                'main_url'  => Piwik_Site::getMainUrlFor($idSite),
-                'name'      => Piwik_Site::getNameFor($idSite),
+                'main_url'  => Site::getMainUrlFor($idSite),
+                'name'      => Site::getNameFor($idSite),
                 'visits'    => 0,
                 'pageviews' => 0
             );
@@ -140,7 +142,7 @@ class Piwik_MultiSites_Controller extends Piwik_Controller
         }
 
         if ($period != 'range') {
-            $lastPeriod = Piwik_Period::factory($period, $dataTable->getMetadata('last_period_date'));
+            $lastPeriod = Period::factory($period, $dataTable->getMetadata('last_period_date'));
             $view->pastPeriodPretty = self::getCalendarPrettyDate($lastPeriod);
         }
 
@@ -180,14 +182,14 @@ class Piwik_MultiSites_Controller extends Piwik_Controller
         $maxDate = $now->subDay(1)->getTimestamp();
         foreach ($siteIds as $idsite) {
             // look for 'now' in the website's timezone
-            $timezone = Piwik_Site::getTimezoneFor($idsite);
+            $timezone = Site::getTimezoneFor($idsite);
             $date = Piwik_Date::adjustForTimezone($now->getTimestamp(), $timezone);
             if ($date > $maxDate) {
                 $maxDate = $date;
             }
 
             // look for the absolute minimum date
-            $creationDate = Piwik_Site::getCreationDateFor($idsite);
+            $creationDate = Site::getCreationDateFor($idsite);
             $date = Piwik_Date::adjustForTimezone(strtotime($creationDate), $timezone);
             if (is_null($minDate) || $date < $minDate) {
                 $minDate = $date;
diff --git a/plugins/PDFReports/API.php b/plugins/PDFReports/API.php
index f177eaf4e76718c254b2d3b6fe2cf92336cdd232..b8a3d1b8dddb70977dc1ff28169ce6821fd8a233 100644
--- a/plugins/PDFReports/API.php
+++ b/plugins/PDFReports/API.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * The PDFReports API lets you manage Scheduled Email reports, as well as generate, download or email any existing report.
@@ -379,7 +380,7 @@ class Piwik_PDFReports_API
 
             $processedReport['segment'] = $segment;
 
-            // TODO add static method getPrettyDate($period, $date) in Piwik_Period
+            // TODO add static method getPrettyDate($period, $date) in Period
             $prettyDate = $processedReport['prettyDate'];
 
             if ($mustRestoreGET) {
@@ -419,7 +420,7 @@ class Piwik_PDFReports_API
         // render report
         $description = str_replace(array("\r", "\n"), ' ', $report['description']);
 
-        list($reportSubject, $reportTitle) = self::getReportSubjectAndReportTitle(Piwik_Site::getNameFor($idSite), $report['reports']);
+        list($reportSubject, $reportTitle) = self::getReportSubjectAndReportTitle(Site::getNameFor($idSite), $report['reports']);
         $filename = "$reportTitle - $prettyDate - $description";
 
         $reportRenderer->renderFrontPage($reportTitle, $prettyDate, $description, $reportMetadata, $segment);
diff --git a/plugins/PDFReports/PDFReports.php b/plugins/PDFReports/PDFReports.php
index 9130c2e2919124befc2a3863fd49e0edc5740aae..2dde8fb0bb9ad6e57fa2a8c3c829edc4ec7e1e1e 100644
--- a/plugins/PDFReports/PDFReports.php
+++ b/plugins/PDFReports/PDFReports.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -416,7 +417,7 @@ class Piwik_PDFReports extends Piwik_Plugin
                         'H',
                         Piwik_Date::factory(
                             $arbitraryDateInUTC,
-                            Piwik_Site::getTimezoneFor($report['idsite'])
+                            Site::getTimezoneFor($report['idsite'])
                         )->getTimestamp()
                     );
 
diff --git a/plugins/SEO/Controller.php b/plugins/SEO/Controller.php
index c09ce235d12eddb35adbd7499ce11ba1bbc1c900..b33aac898630c3d89f8faa78132ae450de2d3d55 100644
--- a/plugins/SEO/Controller.php
+++ b/plugins/SEO/Controller.php
@@ -9,6 +9,7 @@
  * @package Piwik_SEO
  */
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * @package Piwik_SEO
@@ -18,7 +19,7 @@ class Piwik_SEO_Controller extends Piwik_Controller
     function getRank()
     {
         $idSite = Common::getRequestVar('idSite');
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
 
         $url = urldecode(Common::getRequestVar('url', '', 'string'));
 
diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php
index 667258c327917d20bf55d2bc6f048d4113bd8863..c9a12e710cf3d6384dcfa8eec2a31b48aae77e9a 100644
--- a/plugins/SitesManager/API.php
+++ b/plugins/SitesManager/API.php
@@ -11,6 +11,7 @@
 use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Access;
+use Piwik\Site;
 
 /**
  * The SitesManager API gives you full control on Websites in Piwik (create, update and delete), and many methods to retrieve websites based on various attributes.
@@ -155,7 +156,7 @@ class Piwik_SitesManager_API
     public function getSiteUrlsFromId($idSite)
     {
         Piwik::checkUserHasViewAccess($idSite);
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         $urls = $this->getAliasSiteUrlsFromId($idSite);
         return array_merge(array($site->getMainUrl()), $urls);
     }
@@ -543,7 +544,7 @@ class Piwik_SitesManager_API
 
     private function postUpdateWebsite($idSite)
     {
-        Piwik_Site::clearCache();
+        Site::clearCache();
         Piwik_Tracker_Cache::regenerateCacheWebsiteAttributes($idSite);
     }
 
diff --git a/plugins/SitesManager/Controller.php b/plugins/SitesManager/Controller.php
index c6e518dbc95e10be2e9871dade06f82deb3d07a4..55a4e8383be80f7a2e5888a15d35cb258a6c2210 100644
--- a/plugins/SitesManager/Controller.php
+++ b/plugins/SitesManager/Controller.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -26,11 +27,11 @@ class Piwik_SitesManager_Controller extends Piwik_Controller_Admin
 
         if (Piwik::isUserIsSuperUser()) {
             $sites = Piwik_SitesManager_API::getInstance()->getAllSites();
-            Piwik_Site::setSites($sites);
+            Site::setSites($sites);
             $sites = array_values($sites);
         } else {
             $sites = Piwik_SitesManager_API::getInstance()->getSitesWithAdminAccess();
-            Piwik_Site::setSitesFromArray($sites);
+            Site::setSitesFromArray($sites);
         }
 
         foreach ($sites as &$site) {
@@ -123,7 +124,7 @@ class Piwik_SitesManager_Controller extends Piwik_Controller_Admin
         $view = new Piwik_View('@SitesManager/displayJavascriptCode');
         $this->setBasicVariablesView($view);
         $view->idSite = $idSite;
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         $view->displaySiteName = $site->getName();
         $view->jsTag = $jsTag;
         echo $view->render();
diff --git a/plugins/Transitions/API.php b/plugins/Transitions/API.php
index 739d07af7d304787b753ff5811985bb115c1a32d..ccb17fc87596b042b3c1c038c308ba82888eb664 100644
--- a/plugins/Transitions/API.php
+++ b/plugins/Transitions/API.php
@@ -8,8 +8,10 @@
  * @category Piwik_Plugins
  * @package Piwik_Transitions
  */
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  * @package Piwik_Transitions
@@ -65,8 +67,8 @@ class Piwik_Transitions_API
 
         // prepare archive processing that can be used by the archiving code
         $segment = new Piwik_Segment($segment, $idSite);
-        $site = new Piwik_Site($idSite);
-        $period = Piwik_Period::advancedFactory($period, $date);
+        $site = new Site($idSite);
+        $period = Period::advancedFactory($period, $date);
         $archiveProcessor = new Piwik_ArchiveProcessor_Day($period, $site, $segment);
         $logAggregator = $archiveProcessor->getLogAggregator();
         // prepare the report
diff --git a/plugins/UserCountryMap/Controller.php b/plugins/UserCountryMap/Controller.php
index 08989db23791d73d453d7ff5531931ba8ac5c2bb..5230677287f4985b2231ab63cc8ceb32e465e33f 100644
--- a/plugins/UserCountryMap/Controller.php
+++ b/plugins/UserCountryMap/Controller.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -114,7 +115,7 @@ class Piwik_UserCountryMap_Controller extends Piwik_Controller
         $view->liveRefreshAfterMs = (int)Config::getInstance()->General['live_widget_refresh_after_seconds'] * 1000;
 
         $goals = Piwik_Goals_API::getInstance()->getGoals($idSite);
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
         $view->hasGoals = !empty($goals) || $site->isEcommerceEnabled() ? 'true' : 'false';
 
         // maximum number of visits to be displayed in the map
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index 17a2c84c472bd4340b14eb3bff9e23b60b90f757..2337d76d63ebd67b0259fe246ec3ccd8e347a320 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -12,6 +12,7 @@ use Piwik\Config;
 use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Access;
+use Piwik\Site;
 
 /**
  * The UsersManager API lets you Manage Users and their permissions to access specific websites.
@@ -540,7 +541,7 @@ class Piwik_UsersManager_API
             $idSites = Piwik_SitesManager_API::getInstance()->getSitesIdWithAdminAccess();
         } // in case the idSites is an integer we build an array
         else {
-            $idSites = Piwik_Site::getIdSitesFromIdSitesString($idSites);
+            $idSites = Site::getIdSitesFromIdSitesString($idSites);
         }
 
         if (empty($idSites)) {
diff --git a/plugins/UsersManager/Controller.php b/plugins/UsersManager/Controller.php
index 9c8cae77ca7cdd0058d6e655e78a9029426a7ac3..29f567757c6e8013f27aadbe4cf87f88cb83acd6 100644
--- a/plugins/UsersManager/Controller.php
+++ b/plugins/UsersManager/Controller.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -44,7 +45,7 @@ class Piwik_UsersManager_Controller extends Piwik_Controller_Admin
             $defaultReportSiteName = Piwik_Translate('UsersManager_ApplyToAllWebsites');
         } else {
             $usersAccessByWebsite = Piwik_UsersManager_API::getInstance()->getUsersAccessFromSite($idSiteSelected);
-            $defaultReportSiteName = Piwik_Site::getNameFor($idSiteSelected);
+            $defaultReportSiteName = Site::getNameFor($idSiteSelected);
         }
 
         // we dont want to display the user currently logged so that the user can't change his settings from admin to view...
@@ -142,9 +143,9 @@ class Piwik_UsersManager_Controller extends Piwik_Controller_Admin
         $view->defaultReport = $defaultReport;
 
         if ($defaultReport == 'MultiSites') {
-            $view->defaultReportSiteName = Piwik_Site::getNameFor($this->getDefaultWebsiteId());
+            $view->defaultReportSiteName = Site::getNameFor($this->getDefaultWebsiteId());
         } else {
-            $view->defaultReportSiteName = Piwik_Site::getNameFor($defaultReport);
+            $view->defaultReportSiteName = Site::getNameFor($defaultReport);
         }
 
         $view->defaultDate = $this->getDefaultDateForUser($userLogin);
diff --git a/plugins/VisitTime/API.php b/plugins/VisitTime/API.php
index 78a084aaf051eed79bdd20e38c5ce8858f6a45c8..c8a3dd86e68c7fa1ca0061024c30fee4ab4f4163 100644
--- a/plugins/VisitTime/API.php
+++ b/plugins/VisitTime/API.php
@@ -9,7 +9,9 @@
  * @package Piwik_VisitTime
  */
 use Piwik\Archive;
+use Piwik\Period;
 use Piwik\Piwik;
+use Piwik\Site;
 
 /**
  * VisitTime API lets you access reports by Hour (Server time), and by Hour Local Time of your visitors.
@@ -73,12 +75,12 @@ class Piwik_VisitTime_API
         unset($metrics[Piwik_Metrics::INDEX_MAX_ACTIONS]);
         
         // disabled for multiple dates
-        if (Piwik_Period::isMultiplePeriod($date, $period)) {
+        if (Period::isMultiplePeriod($date, $period)) {
             throw new Exception("VisitTime.getByDayOfWeek does not support multiple dates.");
         }
 
         // get metric data for every day within the supplied period
-        $oPeriod = Piwik_Period::makePeriodFromQueryParams(Piwik_Site::getTimezoneFor($idSite), $period, $date);
+        $oPeriod = Period::makePeriodFromQueryParams(Site::getTimezoneFor($idSite), $period, $date);
         $dateRange = $oPeriod->getDateStart()->toString() . ',' . $oPeriod->getDateEnd()->toString();
         $archive = Archive::build($idSite, 'day', $dateRange, $segment);
 
@@ -121,7 +123,7 @@ class Piwik_VisitTime_API
 
     protected function removeHoursInFuture($table, $idSite, $period, $date)
     {
-        $site = new Piwik_Site($idSite);
+        $site = new Site($idSite);
 
         if ($period == 'day'
             && ($date == 'today'
diff --git a/plugins/VisitTime/VisitTime.php b/plugins/VisitTime/VisitTime.php
index e8030b7e7d65c06736668e04b16cb109d30e42e0..abd69f78099523ecb7ee3ec360b6ff4a7eed4754 100644
--- a/plugins/VisitTime/VisitTime.php
+++ b/plugins/VisitTime/VisitTime.php
@@ -9,6 +9,8 @@
  * @package Piwik_VisitTime
  */
 use Piwik\Common;
+use Piwik\Period;
+use Piwik\Site;
 
 /**
  *
@@ -190,7 +192,7 @@ class Piwik_VisitTime extends Piwik_Plugin
         $period = Common::getRequestVar('period');
 
         // create a period instance
-        $oPeriod = Piwik_Period::makePeriodFromQueryParams(Piwik_Site::getTimezoneFor($idSite), $period, $date);
+        $oPeriod = Period::makePeriodFromQueryParams(Site::getTimezoneFor($idSite), $period, $date);
 
         // set the footer message using the period start & end date
         $start = $oPeriod->getDateStart()->toString();
diff --git a/plugins/VisitorGenerator/Controller.php b/plugins/VisitorGenerator/Controller.php
index 606e8784c72bb77de8ef5c3eb5d4770d4827880e..de621bc6ea2ff6e94c3e04a6fc3bd2caf408b4c4 100644
--- a/plugins/VisitorGenerator/Controller.php
+++ b/plugins/VisitorGenerator/Controller.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -87,7 +88,7 @@ class Piwik_VisitorGenerator_Controller extends Piwik_Controller_Admin
         $view->assign('days', $daysToCompute);
         $view->assign('nbActionsTotal', $nbActionsTotal);
         $view->assign('nbRequestsPerSec', round($nbActionsTotal / $timer->getTime(), 0));
-        $view->assign('siteName', Piwik_Site::getNameFor($idSite));
+        $view->assign('siteName', Site::getNameFor($idSite));
         echo $view->render();
     }
 
diff --git a/plugins/VisitsSummary/Controller.php b/plugins/VisitsSummary/Controller.php
index 8a4552f473cb40db0b360494af63d2fdb1d8d5e4..493acaab16b41cc1305a275e2d306dbf202edd47 100644
--- a/plugins/VisitsSummary/Controller.php
+++ b/plugins/VisitsSummary/Controller.php
@@ -10,6 +10,7 @@
  */
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 /**
  *
@@ -76,7 +77,7 @@ class Piwik_VisitsSummary_Controller extends Piwik_Controller
         );
 
         $idSite = Common::getRequestVar('idSite');
-        $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite);
+        $displaySiteSearch = Site::isSiteSearchEnabledFor($idSite);
 
         if ($displaySiteSearch) {
             $selectableColumns[] = 'nb_searches';
@@ -122,7 +123,7 @@ class Piwik_VisitsSummary_Controller extends Piwik_Controller
 		$view->urlSparklineAvgGenerationTime = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('avg_time_generation')));
 
         $idSite = Common::getRequestVar('idSite');
-        $displaySiteSearch = Piwik_Site::isSiteSearchEnabledFor($idSite);
+        $displaySiteSearch = Site::isSiteSearchEnabledFor($idSite);
         if ($displaySiteSearch) {
             $view->urlSparklineNbSearches = $this->getUrlSparkline('getEvolutionGraph', array('columns' => array('nb_searches', 'nb_keywords')));
         }
diff --git a/tests/PHPUnit/BaseFixture.php b/tests/PHPUnit/BaseFixture.php
index 82b1b956ccf6738dbb31eb83e12ffea722c9f62c..d738f7ae90d51e5c33633f34fb9e68ea166a3623 100644
--- a/tests/PHPUnit/BaseFixture.php
+++ b/tests/PHPUnit/BaseFixture.php
@@ -8,6 +8,7 @@
 use Piwik\Config;
 use Piwik\Common;
 use Piwik\Access;
+use Piwik\Site;
 
 /**
  * Base type for all integration test fixtures. Integration test fixtures
@@ -71,7 +72,7 @@ abstract class Test_Piwik_BaseFixture extends PHPUnit_Framework_Assert
         );
 
         // Clear the memory Website cache
-        Piwik_Site::clearCache();
+        Site::clearCache();
 
         return $idSite;
     }
diff --git a/tests/PHPUnit/Benchmarks/ArchiveQueryBenchmark.php b/tests/PHPUnit/Benchmarks/ArchiveQueryBenchmark.php
index e6305563cfdb1df5b47c9b060a64db1635e6cfae..f10f2589430e4ffe1da01ef921972224b3c7857b 100644
--- a/tests/PHPUnit/Benchmarks/ArchiveQueryBenchmark.php
+++ b/tests/PHPUnit/Benchmarks/ArchiveQueryBenchmark.php
@@ -5,6 +5,8 @@
  * @link http://piwik.org
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  */
+use Piwik\Period;
+
 require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/BenchmarkTestCase.php';
 
 /**
@@ -36,7 +38,7 @@ class ArchiveQueryBenchmark extends BenchmarkTestCase
 
         Piwik_ArchiveProcessor_Rules::$archivingDisabledByTests = true;
         
-        $period = Piwik_Period::factory(self::$fixture->period, Piwik_Date::factory(self::$fixture->date));
+        $period = Period::factory(self::$fixture->period, Piwik_Date::factory(self::$fixture->date));
         $dateRange = $period->getDateStart().','.$period->getDateEnd();
         
         Piwik_VisitsSummary_API::getInstance()->get(self::$fixture->idSite, 'day', $dateRange);
diff --git a/tests/PHPUnit/Core/ArchiveProcessingTest.php b/tests/PHPUnit/Core/ArchiveProcessingTest.php
index a190983ce9678d5a3e3c2462f13a52d8bbed7712..68ec9bb0f4d6e02bd8f7fbda5721e6bc65944292 100644
--- a/tests/PHPUnit/Core/ArchiveProcessingTest.php
+++ b/tests/PHPUnit/Core/ArchiveProcessingTest.php
@@ -1,8 +1,10 @@
 <?php
 use Piwik\Config;
+use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Access;
+use Piwik\Site;
 
 /**
  * Piwik - Open source web analytics
@@ -26,7 +28,7 @@ class ArchiveProcessingTest extends DatabaseTestCase
      * Creates a new website
      *
      * @param string $timezone
-     * @return Piwik_Site
+     * @return Site
      */
     private function _createWebsite($timezone = 'UTC')
     {
@@ -39,8 +41,8 @@ class ArchiveProcessingTest extends DatabaseTestCase
             $excludedQueryParameters = "",
             $timezone);
 
-        Piwik_Site::clearCache();
-        return new Piwik_Site($idSite);
+        Site::clearCache();
+        return new Site($idSite);
     }
 
     /**
@@ -55,7 +57,7 @@ class ArchiveProcessingTest extends DatabaseTestCase
     {
         $site = $this->_createWebsite($siteTimezone);
         $date = Piwik_Date::factory($dateLabel);
-        $period = Piwik_Period::factory($periodLabel, $date);
+        $period = Period::factory($periodLabel, $date);
         $segment = new Piwik_Segment('', $site->getId());
 
 
diff --git a/tests/PHPUnit/Core/PeriodTest.php b/tests/PHPUnit/Core/PeriodTest.php
index c7ab39662b9dc077d3facfe48e66747c20101712..60212182140825a11a1afca767119b2f43718f12 100644
--- a/tests/PHPUnit/Core/PeriodTest.php
+++ b/tests/PHPUnit/Core/PeriodTest.php
@@ -5,6 +5,8 @@
  * @link http://piwik.org
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  */
+use Piwik\Period;
+
 class PeriodTest extends PHPUnit_Framework_TestCase
 {
     /**
@@ -53,7 +55,7 @@ class PeriodTest extends PHPUnit_Framework_TestCase
      */
     public function testFactoryDay()
     {
-        $period = Piwik_Period::factory('day', Piwik_Date::today());
+        $period = Period::factory('day', Piwik_Date::today());
         $this->assertInstanceOf('Piwik_Period_Day', $period);
     }
 
@@ -63,7 +65,7 @@ class PeriodTest extends PHPUnit_Framework_TestCase
      */
     public function testFactoryMonth()
     {
-        $period = Piwik_Period::factory('month', Piwik_Date::today());
+        $period = Period::factory('month', Piwik_Date::today());
         $this->assertInstanceOf('Piwik_Period_Month', $period);
     }
 
@@ -73,7 +75,7 @@ class PeriodTest extends PHPUnit_Framework_TestCase
      */
     public function testFactoryWeek()
     {
-        $period = Piwik_Period::factory('week', Piwik_Date::today());
+        $period = Period::factory('week', Piwik_Date::today());
         $this->assertInstanceOf('Piwik_Period_Week', $period);
     }
 
@@ -83,7 +85,7 @@ class PeriodTest extends PHPUnit_Framework_TestCase
      */
     public function testFactoryYear()
     {
-        $period = Piwik_Period::factory('year', Piwik_Date::today());
+        $period = Period::factory('year', Piwik_Date::today());
         $this->assertInstanceOf('Piwik_Period_Year', $period);
     }
 
@@ -94,7 +96,7 @@ class PeriodTest extends PHPUnit_Framework_TestCase
     public function testFactoryInvalid()
     {
         try {
-            $period = Piwik_Period::factory('inValid', Piwik_Date::today());
+            $period = Period::factory('inValid', Piwik_Date::today());
         } catch (Exception $e) {
             return;
         }
diff --git a/tests/PHPUnit/DatabaseTestCase.php b/tests/PHPUnit/DatabaseTestCase.php
index edce58a99bd6a57b6e37d63b2ecf32e9611378f2..3c4fb971d0cdd34102490e3f9e6163343d4f7e18 100644
--- a/tests/PHPUnit/DatabaseTestCase.php
+++ b/tests/PHPUnit/DatabaseTestCase.php
@@ -7,6 +7,7 @@
  */
 use Piwik\Config;
 use Piwik\Piwik;
+use Piwik\Site;
 
 /**
  * Tests extending DatabaseTestCase are much slower to run: the setUp will
@@ -67,7 +68,7 @@ class DatabaseTestCase extends PHPUnit_Framework_TestCase
         Piwik_DataTable_Manager::getInstance()->deleteAll();
         Piwik_Option::getInstance()->clearCache();
         Piwik_PDFReports_API::$cache = array();
-        Piwik_Site::clearCache();
+        Site::clearCache();
         Piwik_Tracker_Cache::deleteTrackerCache();
         Config::getInstance()->clear();
         Piwik_DataAccess_ArchiveTableCreator::clear();
diff --git a/tests/PHPUnit/FakeAccess.php b/tests/PHPUnit/FakeAccess.php
index fa8a8b829f4bddc0541cef2265d2cabf8785d2be..0498531052a0dd820d1547e508be6524607de67d 100644
--- a/tests/PHPUnit/FakeAccess.php
+++ b/tests/PHPUnit/FakeAccess.php
@@ -5,6 +5,8 @@
  * @link http://piwik.org
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  */
+use Piwik\Site;
+
 /**
  * FakeAccess for UnitTests
  */
@@ -65,7 +67,7 @@ class FakeAccess
             $websitesAccess = Piwik_SitesManager_API::getInstance()->getAllSitesId();
         }
 
-        $idSites = Piwik_Site::getIdSitesFromIdSitesString($idSites);
+        $idSites = Site::getIdSitesFromIdSitesString($idSites);
         foreach ($idSites as $idsite) {
             if (!in_array($idsite, $websitesAccess)) {
                 throw new Exception("checkUserHasAdminAccess Fake exception // string not to be tested");
diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php
index 961f8d02a514d242751da887994ecf35b325c7df..15872d8463dff67a3ca2ff5ff956388e8cebd159 100755
--- a/tests/PHPUnit/IntegrationTestCase.php
+++ b/tests/PHPUnit/IntegrationTestCase.php
@@ -9,6 +9,7 @@ use Piwik\Config;
 use Piwik\Piwik;
 use Piwik\Common;
 use Piwik\Access;
+use Piwik\Site;
 
 require_once PIWIK_INCLUDE_PATH . '/libs/PiwikTracker/PiwikTracker.php';
 
@@ -220,7 +221,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         }
         Piwik_DataTable_Manager::getInstance()->deleteAll();
         Piwik_Option::getInstance()->clearCache();
-        Piwik_Site::clearCache();
+        Site::clearCache();
         Piwik_Tracker_Cache::deleteTrackerCache();
         Config::getInstance()->clear();
         Piwik_DataAccess_ArchiveTableCreator::clear();
diff --git a/tests/PHPUnit/Plugins/PDFReportsTest.php b/tests/PHPUnit/Plugins/PDFReportsTest.php
index ce5a7333f7b6b10d748d827dcdf36d086982baa2..fcee8804037ea5670e2569e5ba633314b8aa0c00 100644
--- a/tests/PHPUnit/Plugins/PDFReportsTest.php
+++ b/tests/PHPUnit/Plugins/PDFReportsTest.php
@@ -6,6 +6,7 @@
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  */
 use Piwik\Access;
+use Piwik\Site;
 
 require_once 'PDFReports/PDFReports.php';
 
@@ -356,7 +357,7 @@ class PDFReportsTest extends DatabaseTestCase
         $stubbedPDFReportsAPIClass->setValue($stubbedPDFReportsAPI);
 
         // initialize sites 1 and 2
-        Piwik_Site::$infoSites = array(
+        Site::$infoSites = array(
             1 => array('timezone' => 'Europe/Paris'),
             2 => array('timezone' => 'UTC-6.5'),
         );
diff --git a/tests/PHPUnit/Plugins/PrivacyManagerTest.php b/tests/PHPUnit/Plugins/PrivacyManagerTest.php
index 6dcc8821f92f9bea2a8895713bae8cce66cc9a79..08f12fe06670acd65a4678a7733947250c04eec4 100755
--- a/tests/PHPUnit/Plugins/PrivacyManagerTest.php
+++ b/tests/PHPUnit/Plugins/PrivacyManagerTest.php
@@ -9,6 +9,7 @@ use Piwik\Archive;
 use Piwik\Config;
 use Piwik\Piwik;
 use Piwik\Common;
+use Piwik\Site;
 
 require_once 'PrivacyManager/PrivacyManager.php';
 
@@ -107,7 +108,7 @@ class PrivacyManagerTest extends IntegrationTestCase
         parent::tearDown();
         Piwik_DataTable_Manager::getInstance()->deleteAll();
         Piwik_Option::getInstance()->clearCache();
-        Piwik_Site::clearCache();
+        Site::clearCache();
         Piwik_Tracker_Cache::deleteTrackerCache();
         Piwik_DataAccess_ArchiveTableCreator::clear();
 
diff --git a/tests/PHPUnit/Plugins/SitesManagerTest.php b/tests/PHPUnit/Plugins/SitesManagerTest.php
index 05cfb24095eaf6a7d6bada22399141fd6677e3e9..74d7ca265d5129f511c5263b0ec9c9ae88c441f5 100644
--- a/tests/PHPUnit/Plugins/SitesManagerTest.php
+++ b/tests/PHPUnit/Plugins/SitesManagerTest.php
@@ -6,6 +6,7 @@
  * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
  */
 use Piwik\Access;
+use Piwik\Site;
 
 class SitesManagerTest extends DatabaseTestCase
 {
@@ -89,9 +90,9 @@ class SitesManagerTest extends DatabaseTestCase
         $this->assertEquals($timezone, $siteInfo['timezone']);
         $this->assertEquals($currency, $siteInfo['currency']);
         $this->assertEquals($ecommerce, $siteInfo['ecommerce']);
-        $this->assertTrue(Piwik_Site::isEcommerceEnabledFor($idsite));
+        $this->assertTrue(Site::isEcommerceEnabledFor($idsite));
         $this->assertEquals($siteSearch, $siteInfo['sitesearch']);
-        $this->assertTrue(Piwik_Site::isSiteSearchEnabledFor($idsite));
+        $this->assertTrue(Site::isSiteSearchEnabledFor($idsite));
         $this->assertEquals($searchKeywordParameters, $siteInfo['sitesearch_keyword_parameters']);
         $this->assertEquals($searchCategoryParameters, $siteInfo['sitesearch_category_parameters']);
         $this->assertEquals($expectedExcludedQueryParameters, $siteInfo['excluded_parameters']);
@@ -868,7 +869,7 @@ class SitesManagerTest extends DatabaseTestCase
 
         // test that when not specified, defaults are set as expected  
         $idsite = Piwik_SitesManager_API::getInstance()->addSite("site1", array('http://example.org'));
-        $site = new Piwik_Site($idsite);
+        $site = new Site($idsite);
         $this->assertEquals('UTC', $site->getTimezone());
         $this->assertEquals('USD', $site->getCurrency());
         $this->assertEquals('', $site->getExcludedQueryParameters());
@@ -906,7 +907,7 @@ class SitesManagerTest extends DatabaseTestCase
         $idsite = Piwik_SitesManager_API::getInstance()->addSite("site1", array('http://example.org'), $ecommerce = 0,
             $siteSearch = 0, $searchKeywordParameters = 'test1,test2', $searchCategoryParameters = 'test2,test1',
             '', '', $newDefaultTimezone);
-        $site = new Piwik_Site($idsite);
+        $site = new Site($idsite);
         $this->assertEquals($newDefaultTimezone, $site->getTimezone());
         $this->assertEquals(date('Y-m-d'), $site->getCreationDate()->toString());
         $this->assertEquals($newDefaultCurrency, $site->getCurrency());
@@ -915,9 +916,9 @@ class SitesManagerTest extends DatabaseTestCase
         $this->assertEquals('test1,test2', $site->getSearchKeywordParameters());
         $this->assertEquals('test2,test1', $site->getSearchCategoryParameters());
         $this->assertFalse($site->isSiteSearchEnabled());
-        $this->assertFalse(Piwik_Site::isSiteSearchEnabledFor($idsite));
+        $this->assertFalse(Site::isSiteSearchEnabledFor($idsite));
         $this->assertFalse($site->isEcommerceEnabled());
-        $this->assertFalse(Piwik_Site::isEcommerceEnabledFor($idsite));
+        $this->assertFalse(Site::isEcommerceEnabledFor($idsite));
     }
 
     /**
diff --git a/tests/PHPUnit/proxy/piwik.php b/tests/PHPUnit/proxy/piwik.php
index b6ccd4711fde003927373b277021aa19bf9d1f43..8c5fdb27e31d217867927eec9ea51c5c3ed87529 100755
--- a/tests/PHPUnit/proxy/piwik.php
+++ b/tests/PHPUnit/proxy/piwik.php
@@ -12,6 +12,7 @@
 // Wrapping the request inside ob_start() calls to ensure that the Test
 // calling us waits for the full request to process before unblocking
 use Piwik\Config;
+use Piwik\Site;
 
 ob_start();
 
@@ -38,7 +39,7 @@ Piwik_UserCountry_LocationProvider_GeoIp::$geoIPDatabaseDir = 'tests/lib/geoip-f
 Piwik_Tracker::setTestEnvironment();
 Piwik_DataTable_Manager::getInstance()->deleteAll();
 Piwik_Option::getInstance()->clearCache();
-Piwik_Site::clearCache();
+Site::clearCache();
 Piwik_Tracker_Cache::deleteTrackerCache();
 
 include PIWIK_INCLUDE_PATH . '/piwik.php';