diff --git a/core/Archive.php b/core/Archive.php
index 60d67917260094a1fdd4448997b5e8dc9787025f..25e6c6a494c9f03dbb56d054fd7283d7472eecf0 100644
--- a/core/Archive.php
+++ b/core/Archive.php
@@ -10,7 +10,7 @@ namespace Piwik;
 
 use Piwik\Archive\Parameters;
 use Piwik\ArchiveProcessor\Rules;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\DataAccess\ArchiveSelector;
 use Piwik\Period\Factory as PeriodFactory;
 
@@ -524,7 +524,7 @@ class Archive
             return; // all requested site ids were already handled
         }
 
-        $invalidator  = new ArchiveInvalidator();
+        $invalidator  = new Invalidator();
         $sitesPerDays = $invalidator->getRememberedArchivedReportsThatShouldBeInvalidated();
 
         foreach ($sitesPerDays as $date => $siteIds) {
diff --git a/core/DataAccess/ArchiveInvalidator.php b/core/Archive/Invalidator.php
similarity index 98%
rename from core/DataAccess/ArchiveInvalidator.php
rename to core/Archive/Invalidator.php
index 470dff18487641edaf28ba0ef67d7fa1cb7c40d9..6b98061da10d47cb2433cbe6e8af20065658f139 100644
--- a/core/DataAccess/ArchiveInvalidator.php
+++ b/core/Archive/Invalidator.php
@@ -7,9 +7,11 @@
  *
  */
 
-namespace Piwik\DataAccess;
+namespace Piwik\Archive;
 
 use Piwik\CronArchive\SitesToReprocessDistributedList;
+use Piwik\DataAccess\ArchiveTableCreator;
+use Piwik\DataAccess\Model;
 use Piwik\Date;
 use Piwik\Db;
 use Piwik\Option;
@@ -27,9 +29,9 @@ use Piwik\Site;
  *
  * The invalidated archives will be deleted by Purger
  *
- * @package Piwik\DataAccess
+ * TODO: modify
  */
-class ArchiveInvalidator
+class Invalidator
 {
     private $warningDates = array();
     private $processedDates = array();
diff --git a/core/Archive/Purger.php b/core/Archive/Purger.php
index 6f34fddeada47cf4cb5ad7dd5b3b1e9319bad13b..633f2e4bfbe76300f06c22ac396132f8f5a4d93a 100644
--- a/core/Archive/Purger.php
+++ b/core/Archive/Purger.php
@@ -23,7 +23,7 @@ use Piwik\Plugins\CoreAdminHome\Tasks\ArchivesToPurgeDistributedList;
  *
  * This class purges two types of archives:
  *
- * (1) Deletes invalidated archives (from ArchiveInvalidator)
+ * (1) Deletes invalidated archives (from Invalidator)
  *
  * (2) Deletes outdated archives (the temporary or errored archives)
  *
diff --git a/core/CronArchive.php b/core/CronArchive.php
index 9e592e58d2f6ef60974892a7f046b6b927a64547..7a970acb449280e8610bda45a6351171206209a7 100644
--- a/core/CronArchive.php
+++ b/core/CronArchive.php
@@ -12,7 +12,7 @@ use Exception;
 use Piwik\ArchiveProcessor\Rules;
 use Piwik\CronArchive\FixedSiteIds;
 use Piwik\CronArchive\SharedSiteIds;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Exception\UnexpectedWebsiteFoundException;
 use Piwik\Metrics\Formatter;
 use Piwik\Period\Factory as PeriodFactory;
@@ -977,7 +977,7 @@ class CronArchive
     
     public function invalidateArchivedReportsForSitesThatNeedToBeArchivedAgain()
     {
-        $invalidator  = new ArchiveInvalidator();
+        $invalidator  = new Invalidator();
         $sitesPerDays = $invalidator->getRememberedArchivedReportsThatShouldBeInvalidated();
 
         foreach ($sitesPerDays as $date => $siteIds) {
diff --git a/core/Tracker/Visit.php b/core/Tracker/Visit.php
index e5dbc69ef663de6ee938aff1865212346b793a46..3a149cfbd04b3d1198e6fef7b25a91acfa04a419 100644
--- a/core/Tracker/Visit.php
+++ b/core/Tracker/Visit.php
@@ -11,7 +11,7 @@ namespace Piwik\Tracker;
 
 use Piwik\Common;
 use Piwik\Config;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Date;
 use Piwik\Exception\UnexpectedWebsiteFoundException;
 use Piwik\Network\IPUtils;
@@ -682,7 +682,7 @@ class Visit implements VisitInterface
         $date = Date::factory((int) $time, $timezone);
 
         if (!$date->isToday()) { // we don't have to handle in case date is in future as it is not allowed by tracker
-            $invalidReport = new ArchiveInvalidator();
+            $invalidReport = new Invalidator();
             $invalidReport->rememberToInvalidateArchivedReportsLater($idSite, $date);
         }
     }
diff --git a/plugins/CoreAdminHome/API.php b/plugins/CoreAdminHome/API.php
index 60ba204d458a7e723ac55eaf7a561539325b57dc..d3041a170dc70206d11ea838b651554409f46968 100644
--- a/plugins/CoreAdminHome/API.php
+++ b/plugins/CoreAdminHome/API.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\CoreAdminHome;
 
 use Exception;
 use Piwik\Container\StaticContainer;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Db;
 use Piwik\Piwik;
 use Piwik\Scheduler\Scheduler;
@@ -69,7 +69,7 @@ class API extends \Piwik\Plugin\API
 
         Piwik::checkUserHasAdminAccess($idSites);
 
-        $invalidator = new ArchiveInvalidator();
+        $invalidator = new Invalidator();
         $output = $invalidator->markArchivesAsInvalidated($idSites, $dates, $period);
 
         Site::clearCache();
diff --git a/plugins/CoreAdminHome/Commands/FixDuplicateLogActions.php b/plugins/CoreAdminHome/Commands/FixDuplicateLogActions.php
index 47a058c7ad1809b17ba22176783eb23ba9bb13a0..b26b866e27a34c52b99db13da30ef973d3b4868d 100644
--- a/plugins/CoreAdminHome/Commands/FixDuplicateLogActions.php
+++ b/plugins/CoreAdminHome/Commands/FixDuplicateLogActions.php
@@ -11,7 +11,7 @@ namespace Piwik\Plugins\CoreAdminHome\Commands;
 use Piwik\Common;
 use Piwik\Container\StaticContainer;
 use Piwik\DataAccess\Actions;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Plugin\ConsoleCommand;
 use Piwik\Plugins\CoreAdminHome\Model\DuplicateActionRemover;
 use Piwik\Timer;
@@ -39,7 +39,7 @@ class FixDuplicateLogActions extends ConsoleCommand
     /**
      * Used to invalidate archives. Only used if $shouldInvalidateArchives is true.
      *
-     * @var ArchiveInvalidator
+     * @var Invalidator
      */
     private $archiveInvalidator;
 
@@ -65,17 +65,17 @@ class FixDuplicateLogActions extends ConsoleCommand
     /**
      * Constructor.
      *
-     * @param ArchiveInvalidator $invalidator
+     * @param Invalidator $invalidator
      * @param DuplicateActionRemover $duplicateActionRemover
      * @param Actions $actionsAccess
      * @param LoggerInterface $logger
      */
-    public function __construct(ArchiveInvalidator $invalidator = null, DuplicateActionRemover $duplicateActionRemover = null,
+    public function __construct(Invalidator $invalidator = null, DuplicateActionRemover $duplicateActionRemover = null,
                                 Actions $actionsAccess = null, LoggerInterface $logger = null)
     {
         parent::__construct();
 
-        $this->archiveInvalidator = $invalidator ?: new ArchiveInvalidator();
+        $this->archiveInvalidator = $invalidator ?: new Invalidator();
         $this->duplicateActionRemover = $duplicateActionRemover ?: new DuplicateActionRemover();
         $this->actionsAccess = $actionsAccess ?: new Actions();
         $this->logger = $logger ?: StaticContainer::get('Psr\Log\LoggerInterface');
diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php
index f06ff69948d6e914cb35c0caaa2ceccdda4899a2..d88c2e7c4175f80ed61469317401f6246e4d0699 100644
--- a/plugins/SitesManager/SitesManager.php
+++ b/plugins/SitesManager/SitesManager.php
@@ -7,7 +7,7 @@
  *
  */
 namespace Piwik\Plugins\SitesManager;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Tracker\Cache;
 
 /**
@@ -38,7 +38,7 @@ class SitesManager extends \Piwik\Plugin
         // we do not delete logs here on purpose (you can run these queries on the log_ tables to delete all data)
         Cache::deleteCacheWebsiteAttributes($idSite);
 
-        $archiveInvalidator = new ArchiveInvalidator();
+        $archiveInvalidator = new Invalidator();
         $archiveInvalidator->forgetRememberedArchivedReportsToInvalidateForSite($idSite);
     }
 
diff --git a/plugins/SitesManager/tests/Integration/SitesManagerTest.php b/plugins/SitesManager/tests/Integration/SitesManagerTest.php
index 135f505f0187403b15b0798ed2dac14134656911..9fc69fdfde14aa1733648eecf693c1a1c152cbb1 100644
--- a/plugins/SitesManager/tests/Integration/SitesManagerTest.php
+++ b/plugins/SitesManager/tests/Integration/SitesManagerTest.php
@@ -10,7 +10,7 @@ namespace Piwik\Plugins\SitesManager\tests\Integration;
 
 use Piwik\Access;
 use Piwik\Cache;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Date;
 use Piwik\Plugins\SitesManager\SitesManager;
 use Piwik\Tests\Framework\Fixture;
@@ -56,7 +56,7 @@ class SitesManagerTest extends IntegrationTestCase
 
     public function test_onSiteDeleted_shouldRemoveRememberedArchiveReports()
     {
-        $archive = new ArchiveInvalidator();
+        $archive = new Invalidator();
         $archive->rememberToInvalidateArchivedReportsLater($this->siteId, Date::factory('2014-04-05'));
         $archive->rememberToInvalidateArchivedReportsLater($this->siteId, Date::factory('2014-04-06'));
         $archive->rememberToInvalidateArchivedReportsLater(4949, Date::factory('2014-04-05'));
diff --git a/tests/PHPUnit/Integration/CronArchiveTest.php b/tests/PHPUnit/Integration/CronArchiveTest.php
index a85f227802bb2f8f8d46a75631c0957e3631619e..9397fe511cb140248ffe5b3e77dc3c6fdf2ca797 100644
--- a/tests/PHPUnit/Integration/CronArchiveTest.php
+++ b/tests/PHPUnit/Integration/CronArchiveTest.php
@@ -9,7 +9,7 @@
 namespace Piwik\Tests\Integration;
 
 use Piwik\CronArchive;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Date;
 use Piwik\Db;
 use Piwik\Plugins\CoreAdminHome\tests\Framework\Mock\API;
@@ -46,7 +46,7 @@ class CronArchiveTest extends IntegrationTestCase
 
     public function test_getColumnNamesFromTable()
     {
-        $ar = new ArchiveInvalidator();
+        $ar = new Invalidator();
         $ar->rememberToInvalidateArchivedReportsLater(1, Date::factory('2014-04-05'));
         $ar->rememberToInvalidateArchivedReportsLater(2, Date::factory('2014-04-05'));
         $ar->rememberToInvalidateArchivedReportsLater(2, Date::factory('2014-04-06'));
diff --git a/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php b/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php
index fbf2c0b7a94dc91a9c1372a56c1bf9f184c6b218..24e178b1537cf6e57465a58853585270048ffb0f 100644
--- a/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php
+++ b/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php
@@ -11,17 +11,17 @@ namespace Piwik\Tests\Integration\DataAccess;
 use Piwik\Date;
 use Piwik\Option;
 use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 
 /**
  * @group Archiver
- * @group ArchiveInvalidator
+ * @group Invalidator
  * @group DataAccess
  */
 class ArchiveInvalidatorTest extends IntegrationTestCase
 {
     /**
-     * @var ArchiveInvalidator
+     * @var Invalidator
      */
     private $invalidator;
 
@@ -29,7 +29,7 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
     {
         parent::setUp();
 
-        $this->invalidator = new ArchiveInvalidator();
+        $this->invalidator = new Invalidator();
     }
 
     public function test_rememberToInvalidateArchivedReportsLater_shouldCreateAnEntryInCaseThereIsNoneYet()
diff --git a/tests/PHPUnit/Integration/Tracker/VisitTest.php b/tests/PHPUnit/Integration/Tracker/VisitTest.php
index bbbb972cc3e69b070bd24eb7e6fb9786640ad89d..ed767b1ea0e52a1c7355a230377b3ca290c81499 100644
--- a/tests/PHPUnit/Integration/Tracker/VisitTest.php
+++ b/tests/PHPUnit/Integration/Tracker/VisitTest.php
@@ -11,7 +11,7 @@ namespace Piwik\Tests\Integration\Tracker;
 use Piwik\Access;
 use Piwik\Cache;
 use Piwik\CacheId;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Date;
 use Piwik\Network\IPUtils;
 use Piwik\Plugin\Manager;
@@ -370,7 +370,7 @@ class VisitTest extends IntegrationTestCase
 
         $visit->handle();
 
-        $archive = new ArchiveInvalidator();
+        $archive = new Invalidator();
         $remembered = $archive->getRememberedArchivedReportsThatShouldBeInvalidated();
 
         $this->assertSame($expectedRemeberedArchivedReports, $remembered);
diff --git a/tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php b/tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php
index 56dc98e9a06a8c30ed825b66e0a01ebaace85ff6..3c1509f0c6a4e1a21d4dc44d7968c7a388c490f9 100755
--- a/tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php
+++ b/tests/PHPUnit/System/TwoVisitorsTwoWebsitesDifferentDaysConversionsTest.php
@@ -9,7 +9,7 @@ namespace Piwik\Tests\System;
 
 use Piwik\Archive;
 use Piwik\Cache;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\Option;
 use Piwik\Plugins\Goals\Archiver;
 use Piwik\Segment;
@@ -172,7 +172,7 @@ class TwoVisitorsTwoWebsitesDifferentDaysConversionsTest extends SystemTestCase
         $this->assertEquals(array(self::$fixture->idSite1, self::$fixture->idSite2),
                             $cache->fetch('Archive.SiteIdsOfRememberedReportsInvalidated'));
 
-        $invalidator = new ArchiveInvalidator();
+        $invalidator = new Invalidator();
 
         self::$fixture->trackVisits();
 
diff --git a/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchVisitorTypeTest.php b/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchVisitorTypeTest.php
index 55faf4b3be659d800bf6afd6e21b44099c2782d1..4a74c954bc1aa3e13482914430fc3dc0f6d08e71 100755
--- a/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchVisitorTypeTest.php
+++ b/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchVisitorTypeTest.php
@@ -8,7 +8,7 @@
 namespace Piwik\Tests\System;
 
 use Piwik\Common;
-use Piwik\DataAccess\ArchiveInvalidator;
+use Piwik\Archive\Invalidator;
 use Piwik\CronArchive\SitesToReprocessDistributedList;
 use Piwik\Db;
 use Piwik\Tests\Framework\TestCase\SystemTestCase;