diff --git a/mongo/Makefile b/mongo/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..e9c58f4b0df2c2617f4215474eb4ec4f065d2bd1
--- /dev/null
+++ b/mongo/Makefile
@@ -0,0 +1,11 @@
+TEST_HOST ?= 127.0.0.1
+
+build:
+	go build && go install
+
+test:
+	go test -v
+	$(MAKE) -C _example
+
+bench:
+	go test -v -test.bench=. -test.benchtime=10s -benchmem
diff --git a/mongo/_example/Makefile b/mongo/_example/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..9ded0fd45d78acf9559b12c89bc8bc98f0b8ebd6
--- /dev/null
+++ b/mongo/_example/Makefile
@@ -0,0 +1,4 @@
+TEST_HOST   ?= 127.0.0.1
+
+test:
+	go run -v main.go
diff --git a/mysql/Makefile b/mysql/Makefile
index 8f8882b0cbecbc66d9ce3ab2ef552048885dc042..de66e804ee9403ecae6f66ad3d13a9ee65963da2 100644
--- a/mysql/Makefile
+++ b/mysql/Makefile
@@ -4,7 +4,7 @@ build:
 	go build && go install
 
 reset-db:
-	$(MAKE) -C _dumps
+	$(MAKE) reset-db -C _dumps
 
 test: reset-db
 	go test -v
diff --git a/mysql/_dumps/Makefile b/mysql/_dumps/Makefile
index 073f8210eb75017b8208d6891dfc6254a525fae7..933d22b1a88437ee536b08f0b96a93beac88ea6e 100644
--- a/mysql/_dumps/Makefile
+++ b/mysql/_dumps/Makefile
@@ -5,5 +5,10 @@ DB_USERNAME ?= upperio_tests
 DB_PASSWORD ?= upperio_secret
 DB_NAME     ?= upperio_tests
 
-load:
-	cat structs.sql | mysql -u"$(DB_USERNAME)" -p"$(DB_PASSWORD)" -h"$(TEST_HOST)" -P$(TEST_PORT) "$(DB_NAME)"
+all: setup reset-db
+
+setup:
+	mysql -uroot -h"$(TEST_HOST)" -P$(TEST_PORT) < setup.sql
+
+reset-db:
+	mysql -u"$(DB_USERNAME)" -p"$(DB_PASSWORD)" -h"$(TEST_HOST)" -P$(TEST_PORT) "$(DB_NAME)" < structs.sql
diff --git a/postgresql/Makefile b/postgresql/Makefile
index 8f8882b0cbecbc66d9ce3ab2ef552048885dc042..de66e804ee9403ecae6f66ad3d13a9ee65963da2 100644
--- a/postgresql/Makefile
+++ b/postgresql/Makefile
@@ -4,7 +4,7 @@ build:
 	go build && go install
 
 reset-db:
-	$(MAKE) -C _dumps
+	$(MAKE) reset-db -C _dumps
 
 test: reset-db
 	go test -v
diff --git a/postgresql/_dumps/Makefile b/postgresql/_dumps/Makefile
index 64253b53fa959f01a287c125e97699530cb2ceda..2c8b99c3f05761809b2a09347af3ef9653204b91 100644
--- a/postgresql/_dumps/Makefile
+++ b/postgresql/_dumps/Makefile
@@ -5,5 +5,10 @@ DB_USERNAME ?= upperio_tests
 DB_PASSWORD ?= upperio_secret
 DB_NAME     ?= upperio_tests
 
+all: setup reset-db
+
+setup:
+	psql -Upostgres -h$(TEST_HOST) -p$(TEST_PORT) < setup.sql
+
 reset-db:
-	cat structs.sql | PGPASSWORD="$(DB_PASSWORD)" psql -U$(DB_USERNAME) $(DB_NAME) -h$(TEST_HOST) -p$(TEST_PORT)
+	PGPASSWORD="$(DB_PASSWORD)" psql -U$(DB_USERNAME) $(DB_NAME) -h$(TEST_HOST) -p$(TEST_PORT) < structs.sql
diff --git a/ql/Makefile b/ql/Makefile
index 527a9d7c887a2e34820b90f29bdf979ee01bd42d..48467b98487f10621ad1697eaa7816b086ac6a60 100644
--- a/ql/Makefile
+++ b/ql/Makefile
@@ -2,7 +2,7 @@ build:
 	go build && go install
 
 reset-db:
-	$(MAKE) -C _dumps
+	$(MAKE) reset-db -C _dumps
 
 test: reset-db
 	go test -v
diff --git a/ql/_dumps/Makefile b/ql/_dumps/Makefile
index 8eb6708123b0f6df0024e321177e3a3f06d60137..dd60d745ab9797c622187357feb80a599f7f4a6f 100644
--- a/ql/_dumps/Makefile
+++ b/ql/_dumps/Makefile
@@ -1,7 +1,7 @@
 DB_NAME     ?= test.db
 
-load: clean
-	cat structs.sql | $$GOPATH/bin/ql -db $(DB_NAME)
+reset-db: clean
+	$$GOPATH/bin/ql -db $(DB_NAME) < structs.sql
 
 clean:
 	rm -f $(DB_NAME)
diff --git a/ql/database_test.go b/ql/database_test.go
index 057a5ba896e5d849bc938feb44dc8062fd812e71..9c94cb7173fc7319e2a9ab1c980c9ab8c4344f0c 100644
--- a/ql/database_test.go
+++ b/ql/database_test.go
@@ -29,7 +29,6 @@ package ql
 // go test
 
 import (
-	"os"
 
 	//"reflect"
 	//"errors"
diff --git a/sqlite/Makefile b/sqlite/Makefile
index 527a9d7c887a2e34820b90f29bdf979ee01bd42d..48467b98487f10621ad1697eaa7816b086ac6a60 100644
--- a/sqlite/Makefile
+++ b/sqlite/Makefile
@@ -2,7 +2,7 @@ build:
 	go build && go install
 
 reset-db:
-	$(MAKE) -C _dumps
+	$(MAKE) reset-db -C _dumps
 
 test: reset-db
 	go test -v
diff --git a/sqlite/_dumps/Makefile b/sqlite/_dumps/Makefile
index 11c707522b5e6adb4169d7d622296b42f9cbb40c..ad506a6002d64281aa843dc6c0681dc880ce3084 100644
--- a/sqlite/_dumps/Makefile
+++ b/sqlite/_dumps/Makefile
@@ -1,7 +1,7 @@
 all: reset-db
 
 reset-db: clean
-	cat structs.sql | sqlite3 gotest.sqlite3.db
+	sqlite3 gotest.sqlite3.db < structs.sql
 
 clean:
 	rm -f gotest.sqlite3.db