diff --git a/Tests/Integration/Features/QueryByUserIdTest.php b/Tests/Integration/Features/QueryByUserIdTest.php
index b96643da4fa2c69f874a77f32746bd21eda1f44c..0347b9c9f22b25be46dda6f87067675a609dd1e1 100644
--- a/Tests/Integration/Features/QueryByUserIdTest.php
+++ b/Tests/Integration/Features/QueryByUserIdTest.php
@@ -25,7 +25,7 @@ class QueryByUserIdTest extends IntegrationTestCase
 		);
 		wp_set_current_user( $userId );
 		$entryId = $this->createEntryWithEmail( $email );
-		$queries = $this->entryQueriesFactory();
+		$queries = $this->selectQueriesFactory();
 
 		$results = $queries->selectByUserId( $userId );
 		$this->assertEquals( $entryId, $results[0]['entry']->id);
diff --git a/Tests/Integration/IntegrationTestCase.php b/Tests/Integration/IntegrationTestCase.php
index 4e7621e3c47de2a6b3331f2eb1abbe58c5942002..0a6d0ed6f1fffb4b3b519253105de22c4c3baf4f 100755
--- a/Tests/Integration/IntegrationTestCase.php
+++ b/Tests/Integration/IntegrationTestCase.php
@@ -59,7 +59,7 @@ abstract class IntegrationTestCase extends \WP_UnitTestCase
 	/**
 	 * @return SelectQueries
 	 */
-	protected function entryQueriesFactory()
+	protected function selectQueriesFactory()
 	{
 
 		return new SelectQueries(
diff --git a/Tests/Integration/EntryQueriesGeneratorsTest.php b/Tests/Integration/SelectQueriesGeneratorsTest.php
similarity index 94%
rename from Tests/Integration/EntryQueriesGeneratorsTest.php
rename to Tests/Integration/SelectQueriesGeneratorsTest.php
index ffcafbc6f2d8da43a8afcc07b98e3f52afb8b829..fff9fb518b36944316d95d0aa9255a1bd2a01600 100644
--- a/Tests/Integration/EntryQueriesGeneratorsTest.php
+++ b/Tests/Integration/SelectQueriesGeneratorsTest.php
@@ -11,7 +11,7 @@ use calderawp\CalderaFormsQuery\Tests\Traits\CanCreateEntryWithEmailField;
 use calderawp\CalderaFormsQuery\Tests\Traits\HasFactories;
 use calderawp\CalderaFormsQuery\Tests\Traits\UsersMockFormAsDBForm;
 
-class EntryQueriesGeneratorsTest extends IntegrationTestCase
+class SelectQueriesGeneratorsTest extends IntegrationTestCase
 {
 	use CanCreateEntryWithEmailField;
 
@@ -27,7 +27,7 @@ class EntryQueriesGeneratorsTest extends IntegrationTestCase
 		$entryIdOne = $this->createEntryWithEmail($emailOne);
 		$emailTwo = 'two@email.com';
 		$entryIdTwo = $this->createEntryWithEmail($emailTwo);
-		$entryQueries = $this->entryQueriesFactory();
+		$entryQueries = $this->selectQueriesFactory();
 
 		//Email one by email
 		$results = $entryQueries
diff --git a/Tests/Integration/EntryQueriesTest.php b/Tests/Integration/SelectQueriesTest.php
similarity index 88%
rename from Tests/Integration/EntryQueriesTest.php
rename to Tests/Integration/SelectQueriesTest.php
index 1931b7ab802d97e9f8b787ba57d096e38f186421..318c551f87652f9119f6d1ef6c5701476bdab242 100644
--- a/Tests/Integration/EntryQueriesTest.php
+++ b/Tests/Integration/SelectQueriesTest.php
@@ -9,7 +9,7 @@ use calderawp\CalderaFormsQuery\Tests\Traits\CanCreateEntryWithEmailField;
 use calderawp\CalderaFormsQuery\Tests\Traits\HasFactories;
 use calderawp\CalderaFormsQuery\Tests\Traits\UsersMockFormAsDBForm;
 
-class EntryQueriesTest extends IntegrationTestCase
+class SelectQueriesTest extends IntegrationTestCase
 {
 	use UsersMockFormAsDBForm;
 	public function setUp()
@@ -33,7 +33,7 @@ class EntryQueriesTest extends IntegrationTestCase
 		$details = $this->create_entry( $this->mock_form );
 		global $wpdb;
 		$sql = $wpdb->prepare( "SELECT COUNT(`id`) AS `total` FROM `" . $wpdb->prefix . "cf_form_entries` WHERE `form_id` = %s", $this->mock_form_id );
-		$results = $this->entryQueriesFactory()->getResults( $sql );
+		$results = $this->selectQueriesFactory()->getResults( $sql );
 		$this->assertTrue( ! empty( $results ) );
 		$this->assertEquals( 2, $results[0]->total);
 
@@ -50,12 +50,12 @@ class EntryQueriesTest extends IntegrationTestCase
 	{
 		global $wpdb;
 		$sql = $wpdb->prepare( "SELECT COUNT(`id`) AS `total` FROM `" . $wpdb->prefix . "cf_form_entries` WHERE `form_id` = %s", $this->mock_form_id );
-		$resultsOne = $this->entryQueriesFactory()->getResults( $sql );
+		$resultsOne = $this->selectQueriesFactory()->getResults( $sql );
 		$this->assertTrue( ! empty( $resultsOne ) );
 
 		$entry_details = $this->create_entry( $this->mock_form );
 		$sql = $wpdb->prepare("SELECT * FROM `" . $wpdb->prefix . "cf_form_entries` WHERE `id` = %s", $entry_details['id'] );
-		$resultsTwo = $this->entryQueriesFactory()->getResults( $sql );
+		$resultsTwo = $this->selectQueriesFactory()->getResults( $sql );
 		$this->assertTrue( ! empty( $resultsTwo ), var_export( $resultsTwo, true ) );
 
 	}
diff --git a/Tests/Integration/TestsTest.php b/Tests/Integration/TestsTest.php
index d4ecd31d3cfa38e18087ed6e0900c38edab6228e..145676d935db206ad931bb67851c84dcedcd3c9d 100644
--- a/Tests/Integration/TestsTest.php
+++ b/Tests/Integration/TestsTest.php
@@ -39,13 +39,13 @@ class TestsTest extends IntegrationTestCase
 	/**
 	 * Test that factories work for integration tests
 	 *
-	 * @covers HasFactories::entryQueriesFactory()
+	 * @covers HasFactories::selectQueriesFactory()
 	 * @covers HasFactories::entryValuesGeneratorFactory()
 	 * @covers HasFactories::entryGeneratorFactory()
 	 */
 	public function testFactory()
 	{
-		$this->assertTrue(is_a($this->entryQueriesFactory(), SelectQueries::class));
+		$this->assertTrue(is_a($this->selectQueriesFactory(), SelectQueries::class));
 		$this->assertTrue(is_a($this->entryValuesGeneratorFactory(), EntryValues::class));
 		$this->assertTrue(is_a($this->entryGeneratorFactory(), Entry::class));
 
diff --git a/Tests/Traits/HasFactories.php b/Tests/Traits/HasFactories.php
index 7c517ed51b43889c8aa6fab5cab9cc11aa48bbdf..1c948f23dde7bd4d69cff796d5b181b971ebb4d4 100644
--- a/Tests/Traits/HasFactories.php
+++ b/Tests/Traits/HasFactories.php
@@ -3,7 +3,9 @@
 
 namespace calderawp\CalderaFormsQuery\Tests\Traits;
 
+use calderawp\CalderaFormsQuery\DeleteQueries;
 use calderawp\CalderaFormsQuery\SelectQueries;
+use calderawp\CalderaFormsQuery\Tests\Unit\Features\QueriesTest;
 
 trait HasFactories
 {
@@ -66,7 +68,7 @@ trait HasFactories
 	/**
 	 * @return SelectQueries
 	 */
-	protected function entryQueriesFactory()
+	protected function selectQueriesFactory()
 	{
 
 		return new SelectQueries(
@@ -76,6 +78,30 @@ trait HasFactories
 		);
 	}
 
+	/**
+	 * @return DeleteQueries
+	 */
+	protected function deleteQueriesFactory()
+	{
+
+		return new DeleteQueries(
+			$this->entryDeleteGeneratorFactory(),
+			$this->entryValuesDeleteGeneratorFactory(),
+			$this->getWPDB()
+		);
+	}
+
+	/**
+	 * @return \calderawp\CalderaFormsQuery\Features\Queries
+	 */
+	protected function featureQueriesFactory()
+	{
+		return new \calderawp\CalderaFormsQuery\Features\Queries(
+			$this->selectQueriesFactory(),
+			$this->deleteQueriesFactory()
+		);
+	}
+
 	/**
 	 * Gets a WPDB instance
 	 *
diff --git a/Tests/Unit/Delete/DeleteQueryBuilderTest.php b/Tests/Unit/Delete/DeleteQueryBuilderTest.php
index 10db4db1da186121f14fc013f5ad92c48c2bc629..d7f95f094df62acadd480a95dd207f5a23e717bc 100644
--- a/Tests/Unit/Delete/DeleteQueryBuilderTest.php
+++ b/Tests/Unit/Delete/DeleteQueryBuilderTest.php
@@ -107,17 +107,17 @@ class DeleteQueryBuilderTest extends TestCase
 	{
 		$entryGenerator = $this->entryDeleteGeneratorFactory();
 		$newBuilder = new MySqlBuilder();
-		$entryGenerator->resetBuilder( $newBuilder );
-		$this->assertSame( $newBuilder, $entryGenerator->getBuilder( ) );
+		$entryGenerator->resetBuilder($newBuilder);
+		$this->assertSame($newBuilder, $entryGenerator->getBuilder());
 	}
 
 	public function testResetOfQuery()
 	{
 		$entryGenerator = $this->entryDeleteGeneratorFactory();
-		$entryGenerator->deleteByUserId(55 );
+		$entryGenerator->deleteByUserId(55);
 		$entryGenerator->resetQuery();
-		$entryGenerator->deleteByUserId( 42 );
-		$this->assertTrue( is_int( strpos( $entryGenerator->getPreparedSql(), '42' ) ) );
-		$this->assertTrue( ! is_int( strpos( $entryGenerator->getPreparedSql(), '55' ) ) );
+		$entryGenerator->deleteByUserId(42);
+		$this->assertTrue(is_int(strpos($entryGenerator->getPreparedSql(), '42')));
+		$this->assertTrue(! is_int(strpos($entryGenerator->getPreparedSql(), '55')));
 	}
 }
diff --git a/Tests/Unit/DeleteQueriesTest.php b/Tests/Unit/DeleteQueriesTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e9b3b6f23642e5adbfa78b5d5f3162b92eb3ee81
--- /dev/null
+++ b/Tests/Unit/DeleteQueriesTest.php
@@ -0,0 +1,46 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery\Tests\Unit;
+
+use calderawp\CalderaFormsQuery\Delete\Entry;
+use calderawp\CalderaFormsQuery\Delete\EntryValues;
+
+class DeleteQueriesTest extends TestCase
+{
+
+	/**
+	 * Test getting entry SQL generator
+	 *
+	 * @covers DeleteQueries::getEntryGenerator()
+	 * @covers DeleteQueries::$entryGenerator
+	 */
+	public function testGetEntryGenerator()
+	{
+		$queries = $this->deleteQueriesFactory();
+		$this->assertTrue(is_a($queries->getEntryGenerator(), Entry::class));
+	}
+
+	/**
+	 * Test getting entry values SQL generator
+	 *
+	 * @covers DeleteQueries::getEntryValueGenerator()
+	 * @covers DeleteQueries::$entryValueGenerator
+	 */
+	public function testGetEntryValueGenerator()
+	{
+		$queries = $this->deleteQueriesFactory();
+		$this->assertTrue(is_a($queries->getEntryValueGenerator(), EntryValues::class));
+	}
+
+	/**
+	 * Test that getResults method returns an array
+	 *
+	 * @covers DeleteQueries::getResults()
+	 */
+	public function testGetResults()
+	{
+		$queries = $this->deleteQueriesFactory();
+		$this->assertTrue(is_array($queries->getResults("SELECT `roy` FROM sivan WHERE mike = 'roy'")));
+	}
+}
diff --git a/Tests/Unit/Features/FeatureContainerTest.php b/Tests/Unit/Features/FeatureContainerTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..300c1ce39750e20028551bab2aaf17f8c152748b
--- /dev/null
+++ b/Tests/Unit/Features/FeatureContainerTest.php
@@ -0,0 +1,67 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery\Tests\Unit\Features;
+
+
+use calderawp\CalderaContainers\Service\Container as TheServiceContainer;
+use calderawp\CalderaFormsQuery\Features\DoesQueries;
+use calderawp\CalderaFormsQuery\Features\FeatureContainer;
+use calderawp\CalderaFormsQuery\Features\Queries;
+use calderawp\CalderaFormsQuery\MySqlBuilder;
+use calderawp\CalderaFormsQuery\Tests\Unit\TestCase;
+use NilPortugues\Sql\QueryBuilder\Builder\BuilderInterface;
+
+class FeatureContainerTest extends TestCase
+{
+
+	/**
+	 *
+	 * @covers FeatureContainer::getBuilder()
+	 * @covers FeatureContainer::bindServices()
+	 */
+	public function testGetBuilder()
+	{
+		$serviceContainer = new TheServiceContainer();
+		$container = new FeatureContainer($serviceContainer, $this->getWPDB());
+		$this->assertTrue( is_object( $serviceContainer->make( MySqlBuilder::class ) ) );
+		$this->assertTrue( is_object( $container->getBuilder() ) );
+
+		$this->assertTrue(
+			is_a(
+				$container->getBuilder(),
+				BuilderInterface::class
+			)
+		);
+
+		$this->assertEquals(
+			$serviceContainer->make( MySqlBuilder::class ),
+			$container->getBuilder()
+		);
+
+	}
+
+	/**
+	 *
+	 * @covers FeatureContainer::bindServices()
+	 * @covers FeatureContainer::getQueries()
+	 */
+	public function testGetQueries()
+	{
+		$serviceContainer = new TheServiceContainer();
+		$container = new FeatureContainer($serviceContainer, $this->getWPDB());
+
+
+		$this->assertTrue(
+			is_a(
+				$container->getQueries(),
+				Queries::class
+			)
+		);
+
+		$this->assertEquals(
+			$serviceContainer->make( Queries::class ),
+			$container->getQueries()
+		);
+	}
+}
\ No newline at end of file
diff --git a/Tests/Unit/Features/QueriesTest.php b/Tests/Unit/Features/QueriesTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..8a5bcd10d3bfc3f3c521834b72bd840bdb6ee6bc
--- /dev/null
+++ b/Tests/Unit/Features/QueriesTest.php
@@ -0,0 +1,52 @@
+<?php
+namespace calderawp\CalderaFormsQuery\Tests\Unit\Features;
+
+use calderawp\CalderaFormsQuery\Delete\Entry;
+use calderawp\CalderaFormsQuery\Delete\EntryValues;
+use calderawp\CalderaFormsQuery\Tests\Unit\TestCase;
+
+class QueriesTest extends TestCase
+{
+	/**
+	 * Test getting entry delete SQL generator
+	 *
+	 * @covers Queries::entryDelete()
+	 */
+	public function testGetDeleteEntryGenerator()
+	{
+		$queries = $this->featureQueriesFactory();
+		$this->assertTrue(is_a($queries->entryDelete(), Entry::class));
+	}
+
+	/**
+	 * Test getting entry delete values SQL generator
+	 *
+	 * @covers Queries::entryValueDelete()
+	 */
+	public function testGetDeleteEntryValueGenerator()
+	{
+		$queries = $this->featureQueriesFactory();
+		$this->assertTrue(is_a($queries->entryValueDelete(), EntryValues::class));
+	}
+	/**
+	 * Test getting entry select SQL generator
+	 *
+	 * @covers Queries::entrySelect()
+	 */
+	public function testGetSelectEntryGenerator()
+	{
+		$queries = $this->featureQueriesFactory();
+		$this->assertTrue(is_a($queries->entrySelect(), \calderawp\CalderaFormsQuery\Select\Entry::class));
+	}
+
+	/**
+	 * Test getting entry values  select SQL generator
+	 *
+	 * @covers Queries::entryValuesSelect()
+	 */
+	public function testGetSelectEntryValueGenerator()
+	{
+		$queries = $this->featureQueriesFactory();
+		$this->assertTrue(is_a($queries->entryValuesSelect(), \calderawp\CalderaFormsQuery\Select\EntryValues::class));
+	}
+}
diff --git a/Tests/Unit/Select/SelectQueryBuilderTest.php b/Tests/Unit/Select/SelectQueryBuilderTest.php
index f3a1555eacb3abdf823e2503e5e0592458786beb..522ffccff40adb4f18bb609886cdef984b6d2845 100644
--- a/Tests/Unit/Select/SelectQueryBuilderTest.php
+++ b/Tests/Unit/Select/SelectQueryBuilderTest.php
@@ -119,7 +119,7 @@ class SelectQueryBuilderTest extends TestCase
 	{
 		$entryGenerator = $this->entryGeneratorFactory();
 		$newBuilder = new MySqlBuilder();
-		$entryGenerator->resetBuilder( $newBuilder );
-		$this->assertSame( $newBuilder, $entryGenerator->getBuilder( ) );
+		$entryGenerator->resetBuilder($newBuilder);
+		$this->assertSame($newBuilder, $entryGenerator->getBuilder());
 	}
 }
diff --git a/Tests/Unit/EntryQueriesTest.php b/Tests/Unit/SelectQueriesTest.php
similarity index 86%
rename from Tests/Unit/EntryQueriesTest.php
rename to Tests/Unit/SelectQueriesTest.php
index c7f9b5a9c3974372ce3825a456a5114e38405974..0ef695d25be3f6bddcfda4fa908eb60d088850f8 100644
--- a/Tests/Unit/EntryQueriesTest.php
+++ b/Tests/Unit/SelectQueriesTest.php
@@ -8,7 +8,7 @@ use calderawp\CalderaFormsQuery\Select\Entry;
 use calderawp\CalderaFormsQuery\Select\EntryValues;
 use calderawp\CalderaFormsQuery\Select\SelectQueryBuilder;
 
-class EntryQueriesTest extends TestCase
+class SelectQueriesTest extends TestCase
 {
 
 	/**
@@ -19,7 +19,7 @@ class EntryQueriesTest extends TestCase
 	 */
 	public function testGetEntryGenerator()
 	{
-		$queries = $this->entryQueriesFactory();
+		$queries = $this->selectQueriesFactory();
 		$this->assertTrue(is_a($queries->getEntryGenerator(), Entry::class));
 	}
 
@@ -31,7 +31,7 @@ class EntryQueriesTest extends TestCase
 	 */
 	public function testGetEntryValueGenerator()
 	{
-		$queries = $this->entryQueriesFactory();
+		$queries = $this->selectQueriesFactory();
 		$this->assertTrue(is_a($queries->getEntryValueGenerator(), EntryValues::class));
 	}
 
@@ -42,8 +42,7 @@ class EntryQueriesTest extends TestCase
 	 */
 	public function testGetResults()
 	{
-		$queries = $this->entryQueriesFactory();
+		$queries = $this->selectQueriesFactory();
 		$this->assertTrue(is_array($queries->getResults("SELECT `roy` FROM sivan WHERE mike = 'roy'")));
 	}
-
 }
diff --git a/composer.json b/composer.json
index a75cc4d39e7d86d2f36244c213f9562b10b1975f..ef179fa73ede6110e074b5141867b650a75e5d30 100644
--- a/composer.json
+++ b/composer.json
@@ -16,7 +16,8 @@
     ],
     "require": {
         "php": ">=5.6",
-        "nilportugues/sql-query-builder": "^1.5"
+        "nilportugues/sql-query-builder": "^1.5",
+        "calderawp/caldera-containers": "^0.1.1"
     },
     "autoload": {
         "psr-4": {
diff --git a/composer.lock b/composer.lock
index 3a8a50c2469efb7854dcfa5762c05ebd4866665e..b411b10c50965b16edf6654abf2b13e4c0e574e3 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,50 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "90b8c6ac2ab8c558b28b1aea0f40cc18",
+    "content-hash": "736a984915e9e1f970336e5a8e5b38eb",
     "packages": [
+        {
+            "name": "calderawp/caldera-containers",
+            "version": "0.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/CalderaWP/caldera-containers.git",
+                "reference": "66eb851926e6872b4e8f5d5fdf7a1b80ebd43fba"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/CalderaWP/caldera-containers/zipball/66eb851926e6872b4e8f5d5fdf7a1b80ebd43fba",
+                "reference": "66eb851926e6872b4e8f5d5fdf7a1b80ebd43fba",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.6|^7.0",
+                "pimple/pimple": "^3.2",
+                "psr/container": "^1.0@dev"
+            },
+            "require-dev": {
+                "jakub-onderka/php-parallel-lint": "^1.0",
+                "phpunit/phpunit": "5.0.*",
+                "squizlabs/php_codesniffer": "^3.2"
+            },
+            "type": "libary",
+            "autoload": {
+                "psr-4": {
+                    "calderawp\\CalderaContainers\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "GPL-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "josh",
+                    "email": "josh@calderawp.com"
+                }
+            ],
+            "time": "2018-04-05T19:34:50+00:00"
+        },
         {
             "name": "nilportugues/sql-query-builder",
             "version": "1.5.1",
@@ -124,6 +166,105 @@
                 "tokenizer"
             ],
             "time": "2015-11-02T23:24:39+00:00"
+        },
+        {
+            "name": "pimple/pimple",
+            "version": "v3.2.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/silexphp/Pimple.git",
+                "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32",
+                "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0",
+                "psr/container": "^1.0"
+            },
+            "require-dev": {
+                "symfony/phpunit-bridge": "^3.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.2.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Pimple": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                }
+            ],
+            "description": "Pimple, a simple Dependency Injection Container",
+            "homepage": "http://pimple.sensiolabs.org",
+            "keywords": [
+                "container",
+                "dependency injection"
+            ],
+            "time": "2018-01-21T07:42:36+00:00"
+        },
+        {
+            "name": "psr/container",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+                "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "time": "2017-02-14T16:28:37+00:00"
         }
     ],
     "packages-dev": [
diff --git a/src/CreatesDeleteQueries.php b/src/CreatesDeleteQueries.php
new file mode 100644
index 0000000000000000000000000000000000000000..f5852e7705c477d5b5b034ad7700d6678ff2d50a
--- /dev/null
+++ b/src/CreatesDeleteQueries.php
@@ -0,0 +1,28 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery;
+
+use calderawp\CalderaFormsQuery\Delete\Entry;
+use calderawp\CalderaFormsQuery\Delete\EntryValues;
+
+/**
+ * Interface CreatesDeleteQueries
+ *
+ * Interface that all classes that query for entries MUST impliment
+ */
+interface CreatesDeleteQueries extends GetsResults
+{
+	/**
+	 * Get DELETE query generator for entry values SQL
+	 *
+	 * @return EntryValues
+	 */
+	public function getEntryValueGenerator();
+	/**
+	 * Get DELETE query generator for entry table SQL
+	 *
+	 * @return Entry
+	 */
+	public function getEntryGenerator();
+}
diff --git a/src/CreatesSelectQueries.php b/src/CreatesSelectQueries.php
index 0a26d997f6e18c04d1b712d7cd152e97a8c88dbf..0c1f9ea3b7431a6fa1d93c1827fd81addf2d5fb8 100644
--- a/src/CreatesSelectQueries.php
+++ b/src/CreatesSelectQueries.php
@@ -11,7 +11,7 @@ use calderawp\CalderaFormsQuery\Select\EntryValues;
  *
  * Interface that all classes that query for entries MUST impliment
  */
-interface CreatesSelectQueries
+interface CreatesSelectQueries extends GetsResults
 {
 	/**
 	 * Get generator for entry values SQL
@@ -25,10 +25,4 @@ interface CreatesSelectQueries
 	 * @return Entry
 	 */
 	public function getEntryGenerator();
-
-	/**
-	 * @param $sql
-	 * @return \stdClass[]
-	 */
-	public function getResults($sql);
 }
diff --git a/src/CreatesSqlQueries.php b/src/CreatesSqlQueries.php
index 5b8eb833b25fc6fb9fe8aa41bb0602852dd5e1e1..8604d6faf1b1f67ed92815c681352fb18b190498 100644
--- a/src/CreatesSqlQueries.php
+++ b/src/CreatesSqlQueries.php
@@ -38,7 +38,7 @@ interface CreatesSqlQueries
 	 * @param MySqlBuilder|null $builder New builder or null to use default empty
 	 * @return $this
 	 */
-	public function resetBuilder( MySqlBuilder $builder = null );
+	public function resetBuilder(MySqlBuilder $builder = null);
 
 	/**
 	 * Reset the query
diff --git a/src/DeleteQueries.php b/src/DeleteQueries.php
new file mode 100644
index 0000000000000000000000000000000000000000..ce437be31183708ef719a7e44bb37756ce9be9cf
--- /dev/null
+++ b/src/DeleteQueries.php
@@ -0,0 +1,60 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery;
+
+use calderawp\CalderaFormsQuery\Delete\Entry;
+use calderawp\CalderaFormsQuery\Delete\EntryValues;
+
+class DeleteQueries implements CreatesDeleteQueries
+{
+
+	/**
+	 * SQL generator for entry table
+	 *
+	 * @var Entry
+	 */
+	protected $entryGenerator;
+
+	/**
+	 * SQL generator for entry values table
+	 *
+	 * @var EntryValues
+	 */
+	protected $entryValueGenerator;
+
+
+	/**
+	 * @var \wpdb
+	 */
+	protected $wpdb;
+
+	public function __construct(Entry $entryGenerator, EntryValues $entryValueGenerator, \wpdb $wpdb)
+	{
+		$this->entryGenerator = $entryGenerator;
+		$this->entryValueGenerator = $entryValueGenerator;
+		$this->wpdb = $wpdb;
+	}
+
+	/** @inheritdoc */
+	public function getResults($sql)
+	{
+		$results = $this->wpdb->get_results($sql);
+		if (empty($results)) {
+			return [];
+		}
+		return $results;
+	}
+
+	/** @inheritdoc */
+	public function getEntryValueGenerator()
+	{
+		return $this->entryValueGenerator;
+	}
+
+	/** @inheritdoc */
+	public function getEntryGenerator()
+	{
+		return $this->entryGenerator;
+	}
+}
diff --git a/src/Features/DoesQueries.php b/src/Features/DoesQueries.php
new file mode 100644
index 0000000000000000000000000000000000000000..43699bd5a6e6dd692a7df2ebc02478cd048dea32
--- /dev/null
+++ b/src/Features/DoesQueries.php
@@ -0,0 +1,10 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery\Features;
+
+
+interface DoesQueries
+{
+
+}
\ No newline at end of file
diff --git a/src/Features/FeatureContainer.php b/src/Features/FeatureContainer.php
new file mode 100644
index 0000000000000000000000000000000000000000..7fb00dd827be15d99909c2c89c3f159e67ef4961
--- /dev/null
+++ b/src/Features/FeatureContainer.php
@@ -0,0 +1,133 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery\Features;
+
+
+use calderawp\CalderaContainers\Container;
+use calderawp\CalderaContainers\Interfaces\ServiceContainer;
+
+use calderawp\CalderaFormsQuery\DeleteQueries;
+use calderawp\CalderaFormsQuery\MySqlBuilder;
+use calderawp\CalderaFormsQuery\Delete\Entry as EntryDelete;
+use \calderawp\CalderaFormsQuery\Delete\EntryValues as EntryValuesDelete;
+use \calderawp\CalderaFormsQuery\Select\Entry as EntrySelect;
+use \calderawp\CalderaFormsQuery\Select\EntryValues as EntryValueSelect;
+use calderawp\CalderaFormsQuery\SelectQueries;
+
+class FeatureContainer extends Container
+{
+	/**
+	 * @var ServiceContainer
+	 */
+	protected $serviceContainer;
+	/**
+	 * @var \wpdb
+	 */
+	protected $wpdb;
+
+	/**
+	 * FeatureContainer constructor.
+	 * @param ServiceContainer $serviceContainer
+	 * @param \wpdb $wpdb
+	 */
+	public function __construct(ServiceContainer $serviceContainer, \wpdb $wpdb )
+	{
+
+		$this->serviceContainer = $serviceContainer;
+		$this->wpdb = $wpdb;
+		$this->bindServices();
+	}
+
+	/**
+	 * Bind services to service container
+	 */
+	protected function bindServices()
+	{
+		$this->serviceContainer->singleton( MySqlBuilder::class, function(){
+			return new MySqlBuilder();
+		});
+
+		$this->serviceContainer->bind( SelectQueries::class, function (){
+			return new SelectQueries(
+				new EntrySelect(
+					$this->getBuilder(),
+					$this->entryTableName()
+				),
+				new EntryValueSelect(
+					$this->getBuilder(),
+					$this->entryTableName()
+				),
+				$this->wpdb
+			);
+		});
+
+		$this->serviceContainer->bind( DeleteQueries::class, function (){
+			return new DeleteQueries(
+				new EntryDelete(
+					$this->getBuilder(),
+					$this->entryTableName()
+				),
+				new EntryValuesDelete(
+					$this->getBuilder(),
+					$this->entryTableName()
+				),
+				$this->wpdb
+			);
+		});
+
+		$this->serviceContainer->singleton( Queries::class, function(){
+			return new Queries(
+				$this
+					->serviceContainer
+					->make( SelectQueries::class ),
+				$this
+					->serviceContainer
+					->make(DeleteQueries::class )
+			);
+		});
+	}
+
+	/**
+	 * Get MySQL builder
+	 *
+	 * @return MySqlBuilder
+	 */
+	public function getBuilder()
+	{
+		return $this
+			->serviceContainer
+			->make( MySqlBuilder::class );
+	}
+
+	/**
+	 * Get query runner
+	 *
+	 * @return Queries
+	 */
+	public function getQueries()
+	{
+		return $this
+			->serviceContainer
+			->make( Queries::class );
+	}
+
+
+
+	/**
+	 * @return string
+	 */
+	protected function entryValueTableName(): string
+	{
+		return "{$this->wpdb->prefix}cf_form_entry_values";
+	}
+
+	/**
+	 * @return string
+	 */
+	protected function entryTableName(): string
+	{
+		return "{$this->wpdb->prefix}cf_form_entries";
+	}
+
+}
\ No newline at end of file
diff --git a/src/Features/Queries.php b/src/Features/Queries.php
new file mode 100644
index 0000000000000000000000000000000000000000..55c0885b54e9292b99e0d62703caa9a8d6ed3317
--- /dev/null
+++ b/src/Features/Queries.php
@@ -0,0 +1,98 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery\Features;
+
+use calderawp\CalderaFormsQuery\CreatesDeleteQueries;
+use calderawp\CalderaFormsQuery\CreatesSelectQueries;
+use calderawp\CalderaFormsQuery\Delete\Entry as EntryDelete;
+use \calderawp\CalderaFormsQuery\Delete\EntryValues as EntryValuesDelete;
+use \calderawp\CalderaFormsQuery\Select\Entry as EntrySelect;
+use \calderawp\CalderaFormsQuery\Select\EntryValues as EntryValueSelect;
+
+class Queries implements DoesQueries
+{
+
+
+	/**
+	 * @var CreatesSelectQueries
+	 */
+	protected $selectQueries;
+	/**
+	 * @var CreatesDeleteQueries
+	 */
+	protected $deleteQueries;
+
+	/**
+	 * Queries constructor.
+	 * @param CreatesSelectQueries $selectQueries
+	 * @param CreatesDeleteQueries $deleteQueries
+	 */
+	public function __construct(CreatesSelectQueries $selectQueries, CreatesDeleteQueries $deleteQueries)
+	{
+		$this->selectQueries = $selectQueries;
+		$this->deleteQueries = $deleteQueries;
+	}
+
+	/**
+	 * Create a new SELECT query for Entry table
+	 *
+	 * @return EntrySelect
+	 */
+	public function entrySelect()
+	{
+		$this
+			->selectQueries
+			->getEntryGenerator()
+			->resetQuery();
+		return $this
+			->selectQueries
+			->getEntryGenerator();
+	}
+
+	/**
+	 * Create a new SELECT query for Entry value table
+	 *
+	 * @return EntryValueSelect
+	 */
+	public function entryValuesSelect()
+	{
+		$this
+			->selectQueries
+			->getEntryValueGenerator()
+			->resetQuery();
+		return $this
+			->selectQueries
+			->getEntryValueGenerator();
+	}
+
+	/**
+	 * Create a new DELETE query for entries
+	 *
+	 * @return EntryDelete
+	 */
+	public function entryDelete()
+	{
+		$this
+			->deleteQueries
+			->getEntryGenerator()
+			->resetQuery();
+		return $this
+			->deleteQueries
+			->getEntryGenerator();
+	}
+
+	/**
+	 * @return EntryValuesDelete
+	 */
+	public function entryValueDelete()
+	{
+		$this
+			->deleteQueries
+			->getEntryValueGenerator()
+			->resetQuery();
+		return $this
+			->deleteQueries
+			->getEntryValueGenerator();
+	}
+}
diff --git a/src/GetsResults.php b/src/GetsResults.php
new file mode 100644
index 0000000000000000000000000000000000000000..3a8a621ff2d71929aeccad6ac3f05f31b1fafcab
--- /dev/null
+++ b/src/GetsResults.php
@@ -0,0 +1,13 @@
+<?php
+
+
+namespace calderawp\CalderaFormsQuery;
+
+interface GetsResults
+{
+	/**
+	 * @param $sql
+	 * @return \stdClass[]
+	 */
+	public function getResults($sql);
+}
diff --git a/src/QueryBuilder.php b/src/QueryBuilder.php
index 22b17f394ca7b842b4ea9654519d2346f291f800..3a9a311cddd15a7e2343cd4a887177805361153d 100644
--- a/src/QueryBuilder.php
+++ b/src/QueryBuilder.php
@@ -47,13 +47,12 @@ abstract class QueryBuilder implements CreatesSqlQueries
 	/** @inheritdoc */
 	public function resetBuilder(MySqlBuilder $builder = null)
 	{
-		if( ! $builder ){
+		if (! $builder) {
 			$builder = new MySqlBuilder();
 		}
 
 		$this->builder = $builder;
 		return $this;
-
 	}
 
 	/**
diff --git a/src/Select/SelectQueryBuilder.php b/src/Select/SelectQueryBuilder.php
index d2b37f1f26b9bf71e7acbff415057f71a0ff4c41..eb45d074344e3c2efb45487a320e3a33e0d3ad17 100644
--- a/src/Select/SelectQueryBuilder.php
+++ b/src/Select/SelectQueryBuilder.php
@@ -60,6 +60,4 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer
 	{
 		$this->selectQuery = new \NilPortugues\Sql\QueryBuilder\Manipulation\Select($this->getTableName());
 	}
-
-
 }
diff --git a/src/SelectQueries.php b/src/SelectQueries.php
index a64a0cb324319d8a76efd368399095a812cc9319..8b355cda6ba3d45aa14cfef736f87074aa1dff94 100644
--- a/src/SelectQueries.php
+++ b/src/SelectQueries.php
@@ -80,8 +80,6 @@ class SelectQueries implements CreatesSelectQueries
 		$entries = $this->getResults($this->getEntryGenerator()->getPreparedSql());
 
 		return $this->collectResults($entries);
-
-
 	}
 
 	/**
@@ -125,7 +123,6 @@ class SelectQueries implements CreatesSelectQueries
 				'entry' => $entry,
 				'values' => $entryValuesPrepared
 			];
-
 		}
 		return $results;
 	}