diff --git a/core/Log.php b/core/Log.php
index e315d809209a70a64fdb23ef6eaaefc91983b32b..baea6f22270787e2f667811bd41e78fb8453ce97 100644
--- a/core/Log.php
+++ b/core/Log.php
@@ -90,7 +90,7 @@ abstract class Piwik_Log extends Zend_Log
 	/**
 	 * Log an event
 	 */
-	public function log($event, $priority)
+	public function log($event, $priority, $extras = null)
 	{
 		// sanity checks
 		if (empty($this->_writers)) {
diff --git a/core/Log/APICall.php b/core/Log/APICall.php
index ae390798b4cfc8304a41db976e2c4fff267c3e31..5f70d377934479a6aa83e0cb525acd1ab8ea0fb3 100644
--- a/core/Log/APICall.php
+++ b/core/Log/APICall.php
@@ -47,7 +47,7 @@ class Piwik_Log_APICall extends Piwik_Log
 		$event['execution_time'] = $executionTime;
 		$event['returned_value'] = is_array($returnedValue) ? serialize($returnedValue) : $returnedValue;
 		
-		parent::log($event, Piwik_Log::INFO);
+		parent::log($event, Piwik_Log::INFO, null);
 	}
 }
 
diff --git a/core/Log/Error.php b/core/Log/Error.php
index 7c41fa91e61ba597fc7350abd98830a37e11489a..578c3ebf4cbe64757457c92338f829907d593e26 100644
--- a/core/Log/Error.php
+++ b/core/Log/Error.php
@@ -51,7 +51,7 @@ class Piwik_Log_Error extends Piwik_Log
 		$event['errline'] = $errline;
 		$event['backtrace'] = $backtrace;
 		
-		parent::log($event, Piwik_Log::ERR);
+		parent::log($event, Piwik_Log::ERR, null);
 	}
 }
 
diff --git a/core/Log/Exception.php b/core/Log/Exception.php
index 6ae10b64cd0e443a49516a58e59168ce903f6b34..827a8e2c977d87a8586008f8f5a7e6df5c192da7 100644
--- a/core/Log/Exception.php
+++ b/core/Log/Exception.php
@@ -52,7 +52,7 @@ class Piwik_Log_Exception extends Piwik_Log
 		$event['errline'] 	= $exception->getLine();
 		$event['backtrace'] = $exception->getTraceAsString();
 
-		parent::log($event, Piwik_Log::CRIT);
+		parent::log($event, Piwik_Log::CRIT, null);
 	}
 }
 
diff --git a/core/Log/Message.php b/core/Log/Message.php
index 239fd1bc537cb3a462f72dbeda95de19f24a333f..f5b1120a2ec764a695396a787cd58c27b3f55b3a 100644
--- a/core/Log/Message.php
+++ b/core/Log/Message.php
@@ -38,7 +38,7 @@ class Piwik_Log_Message extends Piwik_Log
 	{
 		$event = array();
 		$event['message'] = $message;
-		parent::log($event, Piwik_Log::INFO);
+		parent::log($event, Piwik_Log::INFO, null);
 	}
 }
 
diff --git a/plugins/Actions/API.php b/plugins/Actions/API.php
index 658d5da13ff3010883810596e7c8eebad3c4fd5d..ba9c3d1b357fa3fcbe5f5e0c24c289531a87d830 100644
--- a/plugins/Actions/API.php
+++ b/plugins/Actions/API.php
@@ -29,7 +29,7 @@ class Piwik_Actions_API
 		return self::$instance;
 	}
 	
-	protected function getDataTable($name, $idSite, $period, $date, $expanded, $idSubtable )
+	static protected function getDataTable($name, $idSite, $period, $date, $expanded, $idSubtable )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -55,31 +55,31 @@ class Piwik_Actions_API
 	 * Backward compatibility. Fallsback to getPageTitles() instead.
 	 * @deprecated Deprecated since Piwik 0.5
 	 */
-	public function getActions( $idSite, $period, $date, $expanded = false, $idSubtable = false )
+	static public function getActions( $idSite, $period, $date, $expanded = false, $idSubtable = false )
 	{
-	    return $this->getPageTitles( $idSite, $period, $date, $expanded, $idSubtable );
+	    return self::getPageTitles( $idSite, $period, $date, $expanded, $idSubtable );
 	}
 	
-	public function getPageUrls( $idSite, $period, $date, $expanded = false, $idSubtable = false )
+	static public function getPageUrls( $idSite, $period, $date, $expanded = false, $idSubtable = false )
 	{
-		return $this->getDataTable('Actions_actions_url', $idSite, $period, $date, $expanded, $idSubtable );
+		return self::getDataTable('Actions_actions_url', $idSite, $period, $date, $expanded, $idSubtable );
 	}
 
-	public function getPageTitles( $idSite, $period, $date, $expanded = false, $idSubtable = false)
+	static public function getPageTitles( $idSite, $period, $date, $expanded = false, $idSubtable = false)
 	{
-		$dataTable = $this->getDataTable('Actions_actions', $idSite, $period, $date, $expanded, $idSubtable);
+		$dataTable = self::getDataTable('Actions_actions', $idSite, $period, $date, $expanded, $idSubtable);
 		return $dataTable;
 	}
 
-	public function getDownloads( $idSite, $period, $date, $expanded = false, $idSubtable = false )
+	static public function getDownloads( $idSite, $period, $date, $expanded = false, $idSubtable = false )
 	{
-		$dataTable = $this->getDataTable('Actions_downloads', $idSite, $period, $date, $expanded, $idSubtable );
+		$dataTable = self::getDataTable('Actions_downloads', $idSite, $period, $date, $expanded, $idSubtable );
 		return $dataTable;
 	}
 
-	public function getOutlinks( $idSite, $period, $date, $expanded = false, $idSubtable = false )
+	static public function getOutlinks( $idSite, $period, $date, $expanded = false, $idSubtable = false )
 	{
-		$dataTable = $this->getDataTable('Actions_outlink', $idSite, $period, $date, $expanded, $idSubtable );
+		$dataTable = self::getDataTable('Actions_outlink', $idSite, $period, $date, $expanded, $idSubtable );
 		return $dataTable;
 	}
 }
diff --git a/plugins/ExampleAPI/API.php b/plugins/ExampleAPI/API.php
index ce568e13d5ce35be863e25dade5abce0d65d9451..bcddbb3ba6ab6e989f9cfad134ae86e8138e918a 100644
--- a/plugins/ExampleAPI/API.php
+++ b/plugins/ExampleAPI/API.php
@@ -41,7 +41,7 @@ class Piwik_ExampleAPI_API
 	 * Get Piwik version
 	 * @return string
 	 */
-	public function getPiwikVersion()
+	static public function getPiwikVersion()
 	{
 		Piwik::checkUserHasSomeViewAccess();
 		return Piwik_Version::VERSION;
@@ -51,7 +51,7 @@ class Piwik_ExampleAPI_API
 	 * Get Answer to Life
 	 * @return integer
 	 */
-	public function getAnswerToLife()
+	static public function getAnswerToLife()
 	{
 		return 42;
 	}
@@ -60,7 +60,7 @@ class Piwik_ExampleAPI_API
 	 * Get Golden Ratio
 	 * @return float
 	 */
-	public function getGoldenRatio()
+	static public function getGoldenRatio()
 	{
 		//http://en.wikipedia.org/wiki/Golden_ratio
 		return 1.618033988749894848204586834365;
@@ -70,7 +70,7 @@ class Piwik_ExampleAPI_API
 	 * Get object
 	 * @return Piwik_MagicObject
 	 */
-	public function getObject()
+	static public function getObject()
 	{
 		return new Piwik_MagicObject();
 	}
@@ -79,7 +79,7 @@ class Piwik_ExampleAPI_API
 	 * Get null
 	 * @return null
 	 */
-	public function getNull()
+	static public function getNull()
 	{
 		return null;
 	}
@@ -88,7 +88,7 @@ class Piwik_ExampleAPI_API
 	 * Get array of descriptive text
 	 * @return array
 	 */
-	public function getDescriptionArray()
+	static public function getDescriptionArray()
 	{
 		return array('piwik','open source','web analytics','free');
 	}
@@ -97,7 +97,7 @@ class Piwik_ExampleAPI_API
 	 * Get data table
 	 * @return Piwik_DataTable
 	 */
-	public function getCompetitionDatatable()
+	static public function getCompetitionDatatable()
 	{
 		$dataTable = new Piwik_DataTable();
 
@@ -114,7 +114,7 @@ class Piwik_ExampleAPI_API
 	 * Get more information on the Answer to Life...
 	 * @return string
 	 */
-	public function getMoreInformationAnswerToLife()
+	static public function getMoreInformationAnswerToLife()
 	{
 		return "Check http://en.wikipedia.org/wiki/The_Answer_to_Life,_the_Universe,_and_Everything";
 	}
diff --git a/plugins/ExampleUI/API.php b/plugins/ExampleUI/API.php
index 1a606d0f16bd86d9f2d6b6f46768439aa26cecfa..a3cabe96726983f61732e5ae7806ef20129faeac 100644
--- a/plugins/ExampleUI/API.php
+++ b/plugins/ExampleUI/API.php
@@ -26,7 +26,7 @@ class Piwik_ExampleUI_API
 		return self::$instance;
 	}
 	
-	function getTemperaturesEvolution($date, $period)
+	static public function getTemperaturesEvolution($date, $period)
 	{
 		$period = new Piwik_Period_Range($period, 'last30');
 		$dateStart = $period->getDateStart()->get('Y-m-d'); // eg. "2009-04-01"
@@ -56,7 +56,7 @@ class Piwik_ExampleUI_API
 	}
 	
 	// we generate an array of random server temperatures
-	function getTemperatures()
+	static public function getTemperatures()
 	{
 		$xAxis = array(
 			'0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', 
@@ -75,7 +75,7 @@ class Piwik_ExampleUI_API
 		return $dataTable;
 	}
 	
-	function getPlanetRatios()
+	static public function getPlanetRatios()
 	{
 		$planetRatios = array(
 			'Mercury' => 0.382,
@@ -93,9 +93,9 @@ class Piwik_ExampleUI_API
 		return $dataTable;
 	}
 	
-	function getPlanetRatiosWithLogos()
+	static public function getPlanetRatiosWithLogos()
 	{
-		$planetsDataTable = $this->getPlanetRatios();
+		$planetsDataTable = self::getPlanetRatios();
 		foreach($planetsDataTable->getRows() as $row)
 		{
 			$row->addMetadata('logo', "plugins/ExampleUI/images/icons-planet/".strtolower($row->getColumn('label').".png"));
diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php
index 5ed95fd68b0bbf897cd9a47ae2bcc5376665787d..07e26760c2170e99a3d4a7f8b2af869882972f00 100644
--- a/plugins/Goals/API.php
+++ b/plugins/Goals/API.php
@@ -47,7 +47,7 @@ class Piwik_Goals_API
 		return $cleanedGoals;
 	}
 
-	public function addGoal( $idSite, $name, $matchAttribute, $pattern, $patternType, $caseSensitive, $revenue )
+	static public function addGoal( $idSite, $name, $matchAttribute, $pattern, $patternType, $caseSensitive, $revenue )
 	{
 		Piwik::checkUserHasAdminAccess($idSite);
 		// save in db
@@ -78,7 +78,7 @@ class Piwik_Goals_API
 		return $idGoal;
 	}
 	
-	public function updateGoal( $idSite, $idGoal, $name, $matchAttribute, $pattern, $patternType, $caseSensitive, $revenue )
+	static public function updateGoal( $idSite, $idGoal, $name, $matchAttribute, $pattern, $patternType, $caseSensitive, $revenue )
 	{
 		Piwik::checkUserHasAdminAccess($idSite);
 		$name = self::checkName($name);
@@ -98,7 +98,7 @@ class Piwik_Goals_API
 		Piwik_Common::regenerateCacheWebsiteAttributes($idSite);
 	}
 
-	private function checkPatternIsValid($patternType, $pattern)
+	static private function checkPatternIsValid($patternType, $pattern)
 	{
 		if($patternType == 'exact' 
 			&& substr($pattern, 0, 4) != 'http')
@@ -108,17 +108,17 @@ class Piwik_Goals_API
 		}
 	}
 	
-	private function checkName($name)
+	static private function checkName($name)
 	{
 		return urldecode($name);
 	}
 	
-	private function checkPattern($pattern)
+	static private function checkPattern($pattern)
 	{
 		return urldecode($pattern);
 	}
 	
-	public function deleteGoal( $idSite, $idGoal )
+	static public function deleteGoal( $idSite, $idGoal )
 	{
 		Piwik::checkUserHasAdminAccess($idSite);
 		Piwik_Query("UPDATE ".Piwik::prefixTable('goal')."
@@ -130,17 +130,17 @@ class Piwik_Goals_API
 		Piwik_Common::regenerateCacheWebsiteAttributes($idSite);
 	}
 	
-//	public function getConversionsReturningVisitors( $idSite, $period, $date, $idGoal = false )
+//	static public function getConversionsReturningVisitors( $idSite, $period, $date, $idGoal = false )
 //	{
 //		
 //	}
 //	
-//	public function getConversionsNewVisitors( $idSite, $period, $date, $idGoal = false )
+//	static public function getConversionsNewVisitors( $idSite, $period, $date, $idGoal = false )
 //	{
 //		
 //	}
 	
-	public function getConversionRateReturningVisitors( $idSite, $period, $date, $idGoal = false )
+	static public function getConversionRateReturningVisitors( $idSite, $period, $date, $idGoal = false )
 	{
 		// visits converted for returning for all goals = call Frequency API
 		if($idGoal === false)
@@ -151,7 +151,7 @@ class Piwik_Goals_API
 		// visits converted for returning = nb conversion for this goal
 		else
 		{
-			$nbVisitsConvertedReturningVisitors = $this->getNumeric($idSite, $period, $date, Piwik_Goals::getRecordName('nb_conversions', $idGoal, 1));
+			$nbVisitsConvertedReturningVisitors = self::getNumeric($idSite, $period, $date, Piwik_Goals::getRecordName('nb_conversions', $idGoal, 1));
 		}
 		// all returning visits
 		$request = new Piwik_API_Request("method=VisitFrequency.getVisitsReturning&idSite=$idSite&period=$period&date=$date&format=original");
@@ -162,7 +162,7 @@ class Piwik_Goals_API
 		return Piwik::getPercentageSafe($nbVisitsConvertedReturningVisitors, $nbVisitsReturning, Piwik_Goals::ROUNDING_PRECISION);
 	}
 
-	public function getConversionRateNewVisitors( $idSite, $period, $date, $idGoal = false )
+	static public function getConversionRateNewVisitors( $idSite, $period, $date, $idGoal = false )
 	{
 		// new visits converted for all goals = nb visits converted - nb visits converted for returning
 		if($idGoal == false)
@@ -176,7 +176,7 @@ class Piwik_Goals_API
 		// new visits converted for a given goal = nb conversion for this goal for new visits
 		else
 		{
-			$convertedNewVisits = $this->getNumeric($idSite, $period, $date, Piwik_Goals::getRecordName('nb_conversions', $idGoal, 0));
+			$convertedNewVisits = self::getNumeric($idSite, $period, $date, Piwik_Goals::getRecordName('nb_conversions', $idGoal, 0));
 		}
 		// all new visits = all visits - all returning visits 
 		$request = new Piwik_API_Request("method=VisitFrequency.getVisitsReturning&idSite=$idSite&period=$period&date=$date&format=original");
@@ -187,7 +187,7 @@ class Piwik_Goals_API
 		return Piwik::getPercentageSafe($convertedNewVisits, $newVisits, Piwik_Goals::ROUNDING_PRECISION);
 	}
 	
-	public function get( $idSite, $period, $date, $idGoal = false, $columns = array() )
+	static public function get( $idSite, $period, $date, $idGoal = false, $columns = array() )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -211,7 +211,7 @@ class Piwik_Goals_API
 		return $dataTable;
 	}
 	
-	protected static function getNumeric( $idSite, $period, $date, $toFetch )
+	static protected function getNumeric( $idSite, $period, $date, $toFetch )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -219,17 +219,17 @@ class Piwik_Goals_API
 		return $dataTable;		
 	}
 
-	public function getConversions( $idSite, $period, $date, $idGoal = false )
+	static public function getConversions( $idSite, $period, $date, $idGoal = false )
 	{
 		return self::getNumeric( $idSite, $period, $date, Piwik_Goals::getRecordName('nb_conversions', $idGoal));
 	}
 	
-	public function getConversionRate( $idSite, $period, $date, $idGoal = false )
+	static public function getConversionRate( $idSite, $period, $date, $idGoal = false )
 	{
 		return self::getNumeric( $idSite, $period, $date, Piwik_Goals::getRecordName('conversion_rate', $idGoal));
 	}
 	
-	public function getRevenue( $idSite, $period, $date, $idGoal = false )
+	static public function getRevenue( $idSite, $period, $date, $idGoal = false )
 	{
 		return self::getNumeric( $idSite, $period, $date, Piwik_Goals::getRecordName('revenue', $idGoal));
 	}
diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 950bd64ee68bbd91269706656511c2cea4e9d5d9..02c8cb9ddedf2a0426bb7f68c867d065b48162f2 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -38,15 +38,15 @@ class Piwik_Live_API
 	/*
 	 * @return Piwik_DataTable
 	 */
-	public function getLastVisitForVisitor( $visitorId, $idSite = null )
+	static public function getLastVisitForVisitor( $visitorId, $idSite = null )
 	{
-		return $this->getLastVisitsForVisitor($visitorId, $idSite, 1);
+		return self::getLastVisitsForVisitor($visitorId, $idSite, 1);
 	}
 	
 	/*
 	 * @return Piwik_DataTable
 	 */
-	public function getLastVisitsForVisitor( $visitorId, $idSite, $limit = 10 )
+	static public function getLastVisitsForVisitor( $visitorId, $idSite, $limit = 10 )
 	{
 		if(is_null($idSite))
 		{
@@ -64,7 +64,7 @@ class Piwik_Live_API
 	/*
 	 * @return Piwik_DataTable
 	 */
-	public function getLastVisits( $idSite = false, $limit = 10, $minIdVisit = false )
+	static public function getLastVisits( $idSite = false, $limit = 10, $minIdVisit = false )
 	{
 		// for checking given vars
 		// echo $idSite.'|'.$limit.'|'.$minIdVisit.'<br>';
@@ -85,7 +85,7 @@ class Piwik_Live_API
 	/*
 	 * @return Piwik_DataTable
 	 */
-	public function getLastVisitsDetails( $idSite = false, $limit = 1000, $minIdVisit = false )
+	static public function getLastVisitsDetails( $idSite = false, $limit = 1000, $minIdVisit = false )
 	{
 		// for checking given vars
 		// echo $idSite.'|'.$limit.'|'.$minIdVisit.'<br>';
@@ -146,7 +146,7 @@ class Piwik_Live_API
 	/*
 	 * @return array
 	 */
-	private function loadLastVisitorDetailsFromDatabase($visitorId = null, $idSite = null, $limit = null, $minIdVisit = false )
+	static private function loadLastVisitorDetailsFromDatabase($visitorId = null, $idSite = null, $limit = null, $minIdVisit = false )
 	{
 		// for checking given vars
 		// echo $visitorId.'|'.$idSite.'|'.$limit.'|'.$minIdVisit.'<br>';		
@@ -210,7 +210,7 @@ class Piwik_Live_API
 	/*
 	 * @return Piwik_DataTable
 	 */
-	public function getUsersInLastXMin( $idSite = false, $limit = 10, $minIdVisit = false, $minutes = 30 )
+	static public function getUsersInLastXMin( $idSite = false, $limit = 10, $minIdVisit = false, $minutes = 30 )
 	{
 		if(is_null($idSite))
 		{
@@ -229,7 +229,7 @@ class Piwik_Live_API
 	/*
 	 * @return Piwik_DataTable
 	 */
-	public function getUsersInLastXDays( $idSite = false, $limit = 10, $minIdVisit = false, $days = 10 )
+	static public function getUsersInLastXDays( $idSite = false, $limit = 10, $minIdVisit = false, $days = 10 )
 	{
 	
 		if(is_null($idSite))
@@ -250,7 +250,7 @@ class Piwik_Live_API
 	/*
 	 * @return array
 	 */	
-	public function getPageImpressionsInLastXDays($idSite = false, $limit = 10, $minIdVisit = false, $days = 10){
+	static public function getPageImpressionsInLastXDays($idSite = false, $limit = 10, $minIdVisit = false, $days = 10){
 		// for checking given vars
 		#echo $idSite.'|'.$limit.'|'.$minIdVisit.'|'.$days.'<br>';
 			
@@ -278,7 +278,7 @@ class Piwik_Live_API
 	/*
 	 * @return array
 	 */	
-	public function getPageImpressionsInLastXMin($idSite = false, $limit = 10, $minIdVisit = false, $minutes = 30){
+	static public function getPageImpressionsInLastXMin($idSite = false, $limit = 10, $minIdVisit = false, $minutes = 30){
 
 		if(is_null($idSite))
 		{
@@ -307,7 +307,7 @@ class Piwik_Live_API
 	 * TODO should be refactored with function below
 	 * @return array
 	 */
-	private function loadLastVisitorDetailsInLastXMinFromDatabase($visitorId = null, $idSite = null, $limit = 1000, $minIdVisit = false, $minutes = 0 )
+	static private function loadLastVisitorDetailsInLastXMinFromDatabase($visitorId = null, $idSite = null, $limit = 1000, $minIdVisit = false, $minutes = 0 )
 	{
 		$where = $whereBind = array();
 		
@@ -354,7 +354,7 @@ class Piwik_Live_API
 	 * TODO should be refactored with function above
 	 * @return array
 	 */
-	private function loadLastVisitorDetailsInLastXDaysFromDatabase($visitorId = null, $idSite = null, $limit = 1000, $minIdVisit = false, $days = 0 )
+	static private function loadLastVisitorDetailsInLastXDaysFromDatabase($visitorId = null, $idSite = null, $limit = 1000, $minIdVisit = false, $days = 0 )
 	{
 		$where = $whereBind = array();
 		
@@ -401,7 +401,7 @@ class Piwik_Live_API
 	 * TODO should be refactored with function above
 	 * @return array
 	 */
-	private function loadLastVisitedPagesInLastXMinFromDatabase($visitorId = null, $idSite = null, $limit = null, $minIdVisit = false, $minutes = 0 )
+	static private function loadLastVisitedPagesInLastXMinFromDatabase($visitorId = null, $idSite = null, $limit = null, $minIdVisit = false, $minutes = 0 )
 	{
 		$where = $whereBind = array();
 		
@@ -448,7 +448,7 @@ class Piwik_Live_API
 	 * TODO should be refactored with function above
 	 * @return array
 	 */
-	private function loadLastVisitedPagesInLastXDaysFromDatabase($visitorId = null, $idSite = null, $limit = null, $minIdVisit = false, $days = 0 )
+	static private function loadLastVisitedPagesInLastXDaysFromDatabase($visitorId = null, $idSite = null, $limit = null, $minIdVisit = false, $days = 0 )
 	{
 		$where = $whereBind = array();
 		
diff --git a/plugins/Provider/API.php b/plugins/Provider/API.php
index 9f29baba580c0c91cf284d402b7db183f2ace899..72275bbc9a015ff2706daa8458e26c5946283c94 100644
--- a/plugins/Provider/API.php
+++ b/plugins/Provider/API.php
@@ -36,7 +36,7 @@ class Piwik_Provider_API
 		return self::$instance;
 	}
 
-	public function getProvider( $idSite, $period, $date )
+	static public function getProvider( $idSite, $period, $date )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php
index cb33c8919e81beb223a56d6ff9e887f92a498f3a..1260fc365edc5ab1013d83d531e6c0a10b9fe39f 100644
--- a/plugins/Provider/Provider.php
+++ b/plugins/Provider/Provider.php
@@ -180,13 +180,13 @@ class Piwik_Provider extends Piwik_Plugin
 		return trim(strtolower(@gethostbyaddr(long2ip($ip))));
 	}
 
-	public function headerUserCountry($notification)
+	static public function headerUserCountry($notification)
 	{
 		$out =& $notification->getNotificationObject();
 		$out = '<div id="leftcolumn">';
 	}
 	
-	public function footerUserCountry($notification)
+	static public function footerUserCountry($notification)
 	{
 		$out =& $notification->getNotificationObject();
 		$out = '</div>
diff --git a/plugins/Referers/API.php b/plugins/Referers/API.php
index decd1cbd2f8968e209f710e0a1017da27ff4431a..7e261feff36f787f79dd723ca51f06dadb6f6d0a 100644
--- a/plugins/Referers/API.php
+++ b/plugins/Referers/API.php
@@ -38,7 +38,7 @@ class Piwik_Referers_API
 	/**
 	 * @return Piwik_DataTable
 	 */
-	protected function getDataTable($name, $idSite, $period, $date, $expanded, $idSubtable = null)
+	static protected function getDataTable($name, $idSite, $period, $date, $expanded, $idSubtable = null)
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -57,9 +57,9 @@ class Piwik_Referers_API
 		return $dataTable;
 	}
 	
-	function getRefererType($idSite, $period, $date, $typeReferer = false)
+	static public function getRefererType($idSite, $period, $date, $typeReferer = false)
 	{
-		$dataTable = $this->getDataTable('Referers_type', $idSite, $period, $date, $expanded = false);
+		$dataTable = self::getDataTable('Referers_type', $idSite, $period, $date, $expanded = false);
 		if($typeReferer !== false)
 		{
 			$dataTable->filter('Pattern', array('label', $typeReferer));
@@ -68,97 +68,97 @@ class Piwik_Referers_API
 		return $dataTable;
 	}
 	
-	function getKeywords($idSite, $period, $date, $expanded = false)
+	static public function getKeywords($idSite, $period, $date, $expanded = false)
 	{
-		$dataTable = $this->getDataTable('Referers_searchEngineByKeyword', $idSite, $period, $date, $expanded);
+		$dataTable = self::getDataTable('Referers_searchEngineByKeyword', $idSite, $period, $date, $expanded);
 		return $dataTable;
 	}
 
-	function getSearchEnginesFromKeywordId($idSite, $period, $date, $idSubtable)
+	static public function getSearchEnginesFromKeywordId($idSite, $period, $date, $idSubtable)
 	{
-		$dataTable = $this->getDataTable('Referers_searchEngineByKeyword',$idSite, $period, $date, $expanded = false, $idSubtable);
+		$dataTable = self::getDataTable('Referers_searchEngineByKeyword',$idSite, $period, $date, $expanded = false, $idSubtable);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array( 'label', 'url', 'Piwik_getSearchEngineUrlFromName') );
 		$dataTable->queueFilter('MetadataCallbackAddMetadata', array( 'url', 'logo', 'Piwik_getSearchEngineLogoFromUrl') );
 		
 		// get the keyword and create the URL to the search result page
-		$keywords = $this->getKeywords($idSite, $period, $date);
+		$keywords = self::getKeywords($idSite, $period, $date);
 		$keyword = $keywords->getRowFromIdSubDataTable($idSubtable)->getColumn('label');
 		$dataTable->queueFilter('MetadataCallbackReplace', array( 'url', 'Piwik_getSearchEngineUrlFromUrlAndKeyword', array($keyword)) );
 		return $dataTable;
 	}
 
-	function getSearchEngines($idSite, $period, $date, $expanded = false)
+	static public function getSearchEngines($idSite, $period, $date, $expanded = false)
 	{
-		$dataTable = $this->getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date, $expanded);
+		$dataTable = self::getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date, $expanded);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array( 'label', 'url', 'Piwik_getSearchEngineUrlFromName') );
 		$dataTable->queueFilter('MetadataCallbackAddMetadata', array( 'url', 'logo', 'Piwik_getSearchEngineLogoFromUrl') );
 		return $dataTable;
 	}
 
-	function getKeywordsFromSearchEngineId($idSite, $period, $date, $idSubtable)
+	static public function getKeywordsFromSearchEngineId($idSite, $period, $date, $idSubtable)
 	{
-		$dataTable = $this->getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date, $expanded = false, $idSubtable);
+		$dataTable = self::getDataTable('Referers_keywordBySearchEngine',$idSite, $period, $date, $expanded = false, $idSubtable);
 		
 		// get the search engine and create the URL to the search result page
-		$searchEngines = $this->getSearchEngines($idSite, $period, $date);
+		$searchEngines = self::getSearchEngines($idSite, $period, $date);
 		$searchEngines->applyQueuedFilters();
 		$searchEngineUrl = $searchEngines->getRowFromIdSubDataTable($idSubtable)->getMetadata('url');
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array( 'label', 'url', 'Piwik_getSearchEngineUrlFromKeywordAndUrl', array($searchEngineUrl)));
 		return $dataTable;
 	}
 
-	function getCampaigns($idSite, $period, $date, $expanded = false)
+	static public function getCampaigns($idSite, $period, $date, $expanded = false)
 	{
-		$dataTable = $this->getDataTable('Referers_keywordByCampaign',$idSite, $period, $date, $expanded);
+		$dataTable = self::getDataTable('Referers_keywordByCampaign',$idSite, $period, $date, $expanded);
 		return $dataTable;
 	}
 
-	function getKeywordsFromCampaignId($idSite, $period, $date, $idSubtable)
+	static public function getKeywordsFromCampaignId($idSite, $period, $date, $idSubtable)
 	{
-		$dataTable = $this->getDataTable('Referers_keywordByCampaign',$idSite, $period, $date, $expanded = false, $idSubtable);
+		$dataTable = self::getDataTable('Referers_keywordByCampaign',$idSite, $period, $date, $expanded = false, $idSubtable);
 		return $dataTable;
 	}
 
-	function getWebsites($idSite, $period, $date, $expanded = false)
+	static public function getWebsites($idSite, $period, $date, $expanded = false)
 	{
-		$dataTable = $this->getDataTable('Referers_urlByWebsite',$idSite, $period, $date, $expanded);
+		$dataTable = self::getDataTable('Referers_urlByWebsite',$idSite, $period, $date, $expanded);
 		return $dataTable;
 	}
 	
-	function getUrlsFromWebsiteId($idSite, $period, $date, $idSubtable)
+	static public function getUrlsFromWebsiteId($idSite, $period, $date, $idSubtable)
 	{
-		$dataTable = $this->getDataTable('Referers_urlByWebsite',$idSite, $period, $date, $expanded = false, $idSubtable);
+		$dataTable = self::getDataTable('Referers_urlByWebsite',$idSite, $period, $date, $expanded = false, $idSubtable);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array( 'label', 'url', create_function('$label', 'return $label;')) );
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getPathFromUrl'));
 		return $dataTable;
 	}
 
-	function getNumberOfDistinctSearchEngines($idSite, $period, $date)
+	static public function getNumberOfDistinctSearchEngines($idSite, $period, $date)
 	{
-		return $this->getNumeric('Referers_distinctSearchEngines', $idSite, $period, $date);
+		return self::getNumeric('Referers_distinctSearchEngines', $idSite, $period, $date);
 	}
 
-	function getNumberOfDistinctKeywords($idSite, $period, $date)
+	static public function getNumberOfDistinctKeywords($idSite, $period, $date)
 	{
-		return $this->getNumeric('Referers_distinctKeywords', $idSite, $period, $date);
+		return self::getNumeric('Referers_distinctKeywords', $idSite, $period, $date);
 	}
 
-	function getNumberOfDistinctCampaigns($idSite, $period, $date)
+	static public function getNumberOfDistinctCampaigns($idSite, $period, $date)
 	{
-		return $this->getNumeric('Referers_distinctCampaigns', $idSite, $period, $date);
+		return self::getNumeric('Referers_distinctCampaigns', $idSite, $period, $date);
 	}
 
-	function getNumberOfDistinctWebsites($idSite, $period, $date)
+	static public function getNumberOfDistinctWebsites($idSite, $period, $date)
 	{
-		return $this->getNumeric('Referers_distinctWebsites', $idSite, $period, $date);
+		return self::getNumeric('Referers_distinctWebsites', $idSite, $period, $date);
 	}
 
-	function getNumberOfDistinctWebsitesUrls($idSite, $period, $date)
+	static public function getNumberOfDistinctWebsitesUrls($idSite, $period, $date)
 	{
-		return $this->getNumeric('Referers_distinctWebsitesUrls', $idSite, $period, $date);
+		return self::getNumeric('Referers_distinctWebsitesUrls', $idSite, $period, $date);
 	}
 
-	private function getNumeric($name, $idSite, $period, $date)
+	static private function getNumeric($name, $idSite, $period, $date)
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php
index 81c660875fc32ffadf8da8e6498ebc3aaabf755b..0597395efb1175c7c5292452ae0e4e8a736108e3 100644
--- a/plugins/SitesManager/API.php
+++ b/plugins/SitesManager/API.php
@@ -249,7 +249,7 @@ class Piwik_SitesManager_API
 		return (int)$idSite;
 	}
 	
-	private static function postUpdateWebsite($idSite)
+	static private function postUpdateWebsite($idSite)
 	{
 		Piwik_Common::regenerateCacheWebsiteAttributes($idSite);	
 	}
diff --git a/plugins/UserCountry/API.php b/plugins/UserCountry/API.php
index 3b83786e9a5e3acaf175aa14b630acd7262eb9f2..12e075bf8c2319f3d86c48073201d868c9b0b7ca 100644
--- a/plugins/UserCountry/API.php
+++ b/plugins/UserCountry/API.php
@@ -37,9 +37,9 @@ class Piwik_UserCountry_API
 		return self::$instance;
 	}
 	
-	public function getCountry( $idSite, $period, $date )
+	static public function getCountry( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserCountry_country', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserCountry_country', $idSite, $period, $date);
 		// apply filter on the whole datatable in order the inline search to work (searches are done on "beautiful" label)
 		$dataTable->filter('ColumnCallbackAddMetadata', array('label', 'code', create_function('$label', 'return $label;')));
 		$dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getFlagFromCode'));
@@ -49,15 +49,15 @@ class Piwik_UserCountry_API
 		return $dataTable;
 	}
 	
-	public function getContinent( $idSite, $period, $date )
+	static public function getContinent( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserCountry_continent', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserCountry_continent', $idSite, $period, $date);
 		$dataTable->filter('ColumnCallbackReplace', array('label', 'Piwik_ContinentTranslate'));
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'code', create_function('$label', 'return $label;')));
 		return $dataTable;
 	}
 	
-	protected function getDataTable($name, $idSite, $period, $date)
+	static protected function getDataTable($name, $idSite, $period, $date)
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -67,7 +67,7 @@ class Piwik_UserCountry_API
 		return $dataTable;
 	}
 	
-	public function getNumberOfDistinctCountries($idSite, $period, $date)
+	static public function getNumberOfDistinctCountries($idSite, $period, $date)
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
diff --git a/plugins/UserSettings/API.php b/plugins/UserSettings/API.php
index 8e3b65c734875481d695740644c0080111a0869f..e87de7efe68264bc3fb48098d0b2c73fb1a02918 100644
--- a/plugins/UserSettings/API.php
+++ b/plugins/UserSettings/API.php
@@ -35,7 +35,7 @@ class Piwik_UserSettings_API
 		return self::$instance;
 	}
 	
-	protected function getDataTable($name, $idSite, $period, $date)
+	static protected function getDataTable($name, $idSite, $period, $date)
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -44,56 +44,57 @@ class Piwik_UserSettings_API
 		$dataTable->queueFilter('ReplaceColumnNames');
 		return $dataTable;
 	}
-	public function getResolution( $idSite, $period, $date )
+
+	static public function getResolution( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserSettings_resolution', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserSettings_resolution', $idSite, $period, $date);
 		return $dataTable;
 	}
 
-	public function getConfiguration( $idSite, $period, $date )
+	static public function getConfiguration( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserSettings_configuration', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserSettings_configuration', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getConfigurationLabel'));
 		return $dataTable;
 	}
 
-	public function getOS( $idSite, $period, $date )
+	static public function getOS( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserSettings_os', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserSettings_os', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getOSLogo'));
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array( 'label', 'shortLabel', 'Piwik_getOSShortLabel') );
 		$dataTable->queueFilter('ColumnCallbackReplace', array( 'label', 'Piwik_getOSLabel') );
 		return $dataTable;
 	}
 		
-	public function getBrowser( $idSite, $period, $date )
+	static public function getBrowser( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserSettings_browser', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserSettings_browser', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getBrowsersLogo'));
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'shortLabel', 'Piwik_getBrowserShortLabel'));
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getBrowserLabel'));
 		return $dataTable;
 	}
 	
-	public function getBrowserType( $idSite, $period, $date )
+	static public function getBrowserType( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserSettings_browserType', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserSettings_browserType', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'shortLabel', 'ucfirst'));
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getBrowserTypeLabel'));
 		return $dataTable;
 	}
 	
-	public function getWideScreen( $idSite, $period, $date )
+	static public function getWideScreen( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserSettings_wideScreen', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserSettings_wideScreen', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getScreensLogo'));
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'ucfirst'));
 		return $dataTable;
 	}
 	
-	public function getPlugin( $idSite, $period, $date )
+	static public function getPlugin( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('UserSettings_plugin', $idSite, $period, $date);
+		$dataTable = self::getDataTable('UserSettings_plugin', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'logo', 'Piwik_getPluginsLogo'));
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'ucfirst'));
 		return $dataTable;
diff --git a/plugins/VisitFrequency/API.php b/plugins/VisitFrequency/API.php
index 8e770d900743724caf45bd90a4dc6ac6ba1b0863..61513a3edc0c9fb2c95fa68ed4d9e52143750ed5 100644
--- a/plugins/VisitFrequency/API.php
+++ b/plugins/VisitFrequency/API.php
@@ -27,7 +27,7 @@ class Piwik_VisitFrequency_API
 		return self::$instance;
 	}
 	
-	public function get( $idSite, $period, $date, $columns = array() )
+	static public function get( $idSite, $period, $date, $columns = array() )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -60,7 +60,7 @@ class Piwik_VisitFrequency_API
 		return $dataTable;
 	}
 
-	protected function getNumeric( $idSite, $period, $date, $toFetch )
+	static protected function getNumeric( $idSite, $period, $date, $toFetch )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -68,33 +68,33 @@ class Piwik_VisitFrequency_API
 		return $dataTable;		
 	}
 
-	public function getVisitsReturning( $idSite, $period, $date )
+	static public function getVisitsReturning( $idSite, $period, $date )
 	{
-		return $this->getNumeric( $idSite, $period, $date, 'nb_visits_returning');
+		return self::getNumeric( $idSite, $period, $date, 'nb_visits_returning');
 	}
 	
-	public function getActionsReturning( $idSite, $period, $date )
+	static public function getActionsReturning( $idSite, $period, $date )
 	{
-		return $this->getNumeric( $idSite, $period, $date, 'nb_actions_returning');
+		return self::getNumeric( $idSite, $period, $date, 'nb_actions_returning');
 	}
 	
-	public function getMaxActionsReturning( $idSite, $period, $date )
+	static public function getMaxActionsReturning( $idSite, $period, $date )
 	{
-		return $this->getNumeric( $idSite, $period, $date, 'max_actions_returning');
+		return self::getNumeric( $idSite, $period, $date, 'max_actions_returning');
 	}
 	
-	public function getSumVisitsLengthReturning( $idSite, $period, $date )
+	static public function getSumVisitsLengthReturning( $idSite, $period, $date )
 	{
-		return $this->getNumeric( $idSite, $period, $date, 'sum_visit_length_returning');
+		return self::getNumeric( $idSite, $period, $date, 'sum_visit_length_returning');
 	}
 	
-	public function getBounceCountReturning( $idSite, $period, $date )
+	static public function getBounceCountReturning( $idSite, $period, $date )
 	{
-		return $this->getNumeric( $idSite, $period, $date, 'bounce_count_returning');
+		return self::getNumeric( $idSite, $period, $date, 'bounce_count_returning');
 	}
 	
-	public function getConvertedVisitsReturning( $idSite, $period, $date )
+	static public function getConvertedVisitsReturning( $idSite, $period, $date )
 	{
-		return $this->getNumeric( $idSite, $period, $date, 'nb_visits_converted_returning');
+		return self::getNumeric( $idSite, $period, $date, 'nb_visits_converted_returning');
 	}
 }
diff --git a/plugins/VisitTime/API.php b/plugins/VisitTime/API.php
index 8869bc4a0779e2e590704652466d4ffa89fe651e..e37e2a716bad45817290f4aa033c049740a07d71 100644
--- a/plugins/VisitTime/API.php
+++ b/plugins/VisitTime/API.php
@@ -27,7 +27,7 @@ class Piwik_VisitTime_API
 		return self::$instance;
 	}
 	
-	protected function getDataTable($name, $idSite, $period, $date )
+	static protected function getDataTable($name, $idSite, $period, $date )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -38,14 +38,14 @@ class Piwik_VisitTime_API
 		return $dataTable;
 	}
 	
-	public function getVisitInformationPerLocalTime( $idSite, $period, $date )
+	static public function getVisitInformationPerLocalTime( $idSite, $period, $date )
 	{
-		return $this->getDataTable('VisitTime_localTime', $idSite, $period, $date );
+		return self::getDataTable('VisitTime_localTime', $idSite, $period, $date );
 	}
 	
-	public function getVisitInformationPerServerTime( $idSite, $period, $date )
+	static public function getVisitInformationPerServerTime( $idSite, $period, $date )
 	{
-		return $this->getDataTable('VisitTime_serverTime', $idSite, $period, $date );
+		return self::getDataTable('VisitTime_serverTime', $idSite, $period, $date );
 	}
 }
 
diff --git a/plugins/VisitorInterest/API.php b/plugins/VisitorInterest/API.php
index ad2aeb42fae08e50e264628c93a526a23f5cc1e0..e7971ba5fdb756ae3e23722131fa2b63689305ca 100644
--- a/plugins/VisitorInterest/API.php
+++ b/plugins/VisitorInterest/API.php
@@ -27,7 +27,7 @@ class Piwik_VisitorInterest_API
 		return self::$instance;
 	}
 
-	protected function getDataTable($name, $idSite, $period, $date)
+	static protected function getDataTable($name, $idSite, $period, $date)
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -38,16 +38,16 @@ class Piwik_VisitorInterest_API
 		return $dataTable;
 	}
 	
-	public function getNumberOfVisitsPerVisitDuration( $idSite, $period, $date )
+	static public function getNumberOfVisitsPerVisitDuration( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('VisitorInterest_timeGap', $idSite, $period, $date);
+		$dataTable = self::getDataTable('VisitorInterest_timeGap', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getDurationLabel'));
 		return $dataTable;
 	}
 
-	public function getNumberOfVisitsPerPage( $idSite, $period, $date )
+	static public function getNumberOfVisitsPerPage( $idSite, $period, $date )
 	{
-		$dataTable = $this->getDataTable('VisitorInterest_pageGap', $idSite, $period, $date);
+		$dataTable = self::getDataTable('VisitorInterest_pageGap', $idSite, $period, $date);
 		$dataTable->queueFilter('ColumnCallbackReplace', array('label', 'Piwik_getPageGapLabel'));
 		return $dataTable;
 	}
diff --git a/plugins/VisitorInterest/VisitorInterest.php b/plugins/VisitorInterest/VisitorInterest.php
index 82738799f396c3bda5a83a442717fc4bb83801b8..fa0f1a375c8f941ba92e6412cc52992b465fe740 100644
--- a/plugins/VisitorInterest/VisitorInterest.php
+++ b/plugins/VisitorInterest/VisitorInterest.php
@@ -159,13 +159,13 @@ class Piwik_VisitorInterest extends Piwik_Plugin
 		return $table;
 	}
 	
-	public function headerVisitsFrequency($notification)
+	static public function headerVisitsFrequency($notification)
 	{
 		$out =& $notification->getNotificationObject();
 		$out = '<div id="leftcolumn">';
 	}
 	
-	public function footerVisitsFrequency($notification)
+	static public function footerVisitsFrequency($notification)
 	{
 		$out =& $notification->getNotificationObject();
 		$out = '</div>
diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php
index 1bf80f2e50546377143f2c604c01505a9b162373..ec6d04de12cd1cb5f1f1d671c0363497b7aefd52 100644
--- a/plugins/VisitsSummary/API.php
+++ b/plugins/VisitsSummary/API.php
@@ -27,7 +27,7 @@ class Piwik_VisitsSummary_API
 		return self::$instance;
 	}
 	
-	public function get( $idSite, $period, $date, $columns = array() )
+	static public function get( $idSite, $period, $date, $columns = array() )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -61,7 +61,7 @@ class Piwik_VisitsSummary_API
 		return $dataTable;
 	}
 	
-	protected static function getNumeric( $idSite, $period, $date, $toFetch )
+	static protected function getNumeric( $idSite, $period, $date, $toFetch )
 	{
 		Piwik::checkUserHasViewAccess( $idSite );
 		$archive = Piwik_Archive::build($idSite, $period, $date );
@@ -69,42 +69,42 @@ class Piwik_VisitsSummary_API
 		return $dataTable;		
 	}
 
-	public function getVisits( $idSite, $period, $date )
+	static public function getVisits( $idSite, $period, $date )
 	{
 		return self::getNumeric( $idSite, $period, $date, 'nb_visits');
 	}
 	
-	public function getUniqueVisitors( $idSite, $period, $date )
+	static public function getUniqueVisitors( $idSite, $period, $date )
 	{
 		return self::getNumeric( $idSite, $period, $date, 'nb_uniq_visitors');
 	}
 	
-	public function getActions( $idSite, $period, $date )
+	static public function getActions( $idSite, $period, $date )
 	{
 		return self::getNumeric( $idSite, $period, $date, 'nb_actions');
 	}
 	
-	public function getMaxActions( $idSite, $period, $date )
+	static public function getMaxActions( $idSite, $period, $date )
 	{
 		return self::getNumeric( $idSite, $period, $date, 'max_actions');
 	}
 	
-	public function getBounceCount( $idSite, $period, $date )
+	static public function getBounceCount( $idSite, $period, $date )
 	{
 		return self::getNumeric( $idSite, $period, $date, 'bounce_count');
 	}
 	
-	public function getVisitsConverted( $idSite, $period, $date )
+	static public function getVisitsConverted( $idSite, $period, $date )
 	{
 		return self::getNumeric( $idSite, $period, $date, 'nb_visits_converted');
 	}
 	
-	public function getSumVisitsLength( $idSite, $period, $date )
+	static public function getSumVisitsLength( $idSite, $period, $date )
 	{
 		return self::getNumeric( $idSite, $period, $date, 'sum_visit_length');
 	}
 	
-	public function getSumVisitsLengthPretty( $idSite, $period, $date )
+	static public function getSumVisitsLengthPretty( $idSite, $period, $date )
 	{
 		return Piwik::getPrettyTimeFromSeconds(self::getSumVisitsLength( $idSite, $period, $date ));
 	}