diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go
index 6572dbd62a4986a60936e006dec95bccdfff6214..955106a2a5ae62b2020ca1d6b9eeaa26000ce253 100644
--- a/internal/sqladapter/database.go
+++ b/internal/sqladapter/database.go
@@ -7,9 +7,9 @@ import (
 	"time"
 
 	"upper.io/db.v2"
+	"upper.io/db.v2/internal/cache"
 	"upper.io/db.v2/internal/logger"
 	"upper.io/db.v2/lib/sqlbuilder"
-	"upper.io/db.v2/internal/cache"
 	"upper.io/db.v2/lib/sqlbuilder/exql"
 )
 
@@ -31,7 +31,7 @@ type Database interface {
 
 // PartialDatabase defines all the methods an adapter must provide.
 type PartialDatabase interface {
-	builder.Builder
+	sqlbuilder.Builder
 
 	Collections() ([]string, error)
 	Open(db.ConnectionURL) error
diff --git a/internal/sqladapter/result.go b/internal/sqladapter/result.go
index a491a506a528a952122048441a35a5a27036b5de..fef6bbbcc6810704f4e568688028fe2b3e237c02 100644
--- a/internal/sqladapter/result.go
+++ b/internal/sqladapter/result.go
@@ -30,9 +30,9 @@ import (
 
 // Result represents a delimited set of items bound by a condition.
 type Result struct {
-	b       builder.Builder
+	b       sqlbuilder.Builder
 	table   string
-	iter    builder.Iterator
+	iter    sqlbuilder.Iterator
 	limit   int
 	offset  int
 	fields  []interface{}
@@ -51,7 +51,7 @@ func filter(conds []interface{}) []interface{} {
 
 // NewResult creates and Results a new Result set on the given table, this set
 // is limited by the given exql.Where conditions.
-func NewResult(b builder.Builder, table string, conds []interface{}) *Result {
+func NewResult(b sqlbuilder.Builder, table string, conds []interface{}) *Result {
 	return &Result{
 		b:     b,
 		table: table,
@@ -205,7 +205,7 @@ func (r *Result) Count() (uint64, error) {
 	return counter.Count, nil
 }
 
-func (r *Result) buildSelect() builder.Selector {
+func (r *Result) buildSelect() sqlbuilder.Selector {
 	q := r.b.Select(r.fields...)
 
 	q.From(r.table)
diff --git a/internal/sqladapter/testing/adapter.go.tpl b/internal/sqladapter/testing/adapter.go.tpl
index efc881c0285f7310ca4a31af592ff1dfad88231b..6c68a922a48c0864977057ee0b9b689ad9b1d906 100644
--- a/internal/sqladapter/testing/adapter.go.tpl
+++ b/internal/sqladapter/testing/adapter.go.tpl
@@ -39,7 +39,7 @@ func TestMain(m *testing.M) {
 	os.Exit(m.Run())
 }
 
-func mustOpen() builder.Database {
+func mustOpen() sqlbuilder.Database {
 	sess, err := Open(settings)
 	if err != nil {
 		panic(err.Error())
diff --git a/internal/sqladapter/testing/adapter_benchmark.go.tpl b/internal/sqladapter/testing/adapter_benchmark.go.tpl
index 6e661a143119a4f9bdb1f82a9f7e7d3576047af7..0438aca16b1d75188eda7216c1b714c593631806 100644
--- a/internal/sqladapter/testing/adapter_benchmark.go.tpl
+++ b/internal/sqladapter/testing/adapter_benchmark.go.tpl
@@ -277,7 +277,7 @@ func BenchmarkUpperCommitManyTransactions(b *testing.B) {
 	b.ResetTimer()
 
 	for i := 0; i < b.N; i++ {
-		var tx builder.Tx
+		var tx sqlbuilder.Tx
 		if tx, err = sess.NewTx(); err != nil {
 			b.Fatal(err)
 		}
@@ -315,7 +315,7 @@ func BenchmarkUpperRollbackManyTransactions(b *testing.B) {
 	b.ResetTimer()
 
 	for i := 0; i < b.N; i++ {
-		var tx builder.Tx
+		var tx sqlbuilder.Tx
 		if tx, err = sess.NewTx(); err != nil {
 			b.Fatal(err)
 		}
diff --git a/internal/sqladapter/tx.go b/internal/sqladapter/tx.go
index d5d37b36f96cff296f152978d2156935f35b3dd8..059c3f8e93ce5a03722fccad5a452ab91ba457ae 100644
--- a/internal/sqladapter/tx.go
+++ b/internal/sqladapter/tx.go
@@ -96,7 +96,7 @@ func (t *txWrapper) Rollback() error {
 	return t.BaseTx.Rollback()
 }
 
-func RunTx(d builder.Database, fn func(tx builder.Tx) error) error {
+func RunTx(d sqlbuilder.Database, fn func(tx sqlbuilder.Tx) error) error {
 	tx, err := d.NewTx()
 	if err != nil {
 		return err
diff --git a/lib/sqlbuilder/builder.go b/lib/sqlbuilder/builder.go
index 7509024361ab3246eb4b7d28ab6feaea685a4bd0..20ba860c16e0b71ef9874992323e7670f3574308 100644
--- a/lib/sqlbuilder/builder.go
+++ b/lib/sqlbuilder/builder.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/lib/sqlbuilder/builder_test.go b/lib/sqlbuilder/builder_test.go
index aaa332de271cec7aaf2d5d8e8763a781ba4c883e..6726cedb14e9f6d049828a5d10e2178f039c3b68 100644
--- a/lib/sqlbuilder/builder_test.go
+++ b/lib/sqlbuilder/builder_test.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"testing"
diff --git a/lib/sqlbuilder/convert.go b/lib/sqlbuilder/convert.go
index 47d8c3ce3568ca9748f272c7f82b809f2b4970d2..12550f0100e1980b44a751bbdd9619378a5e7a0d 100644
--- a/lib/sqlbuilder/convert.go
+++ b/lib/sqlbuilder/convert.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"fmt"
diff --git a/lib/sqlbuilder/delete.go b/lib/sqlbuilder/delete.go
index c6044e8ab3877f2fd217f4076f6c5f5a2eb5c0ab..c0bf81d66249eef8fa0dc541eca214d5769f9889 100644
--- a/lib/sqlbuilder/delete.go
+++ b/lib/sqlbuilder/delete.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/lib/sqlbuilder/errors.go b/lib/sqlbuilder/errors.go
index 015b29b3508e7d9bec6109a5651f395e822e5ab8..1fbdaec9c76279159077808bb3f15e5266b11708 100644
--- a/lib/sqlbuilder/errors.go
+++ b/lib/sqlbuilder/errors.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"errors"
diff --git a/lib/sqlbuilder/fetch.go b/lib/sqlbuilder/fetch.go
index d0802173875ae8559499d7ffb90c70fa5de80c39..b5bf577f029d71c6bcac3deeeac5e744dfaf37ba 100644
--- a/lib/sqlbuilder/fetch.go
+++ b/lib/sqlbuilder/fetch.go
@@ -19,7 +19,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/lib/sqlbuilder/insert.go b/lib/sqlbuilder/insert.go
index 29e06f3c9d75147a5b6f92742f155837ad6dfe01..9693885c2e6d1e69ea756ffa006d2a97301c6eaf 100644
--- a/lib/sqlbuilder/insert.go
+++ b/lib/sqlbuilder/insert.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/lib/sqlbuilder/interfaces.go b/lib/sqlbuilder/interfaces.go
index 409cd5946c462eab20338e2db82ca77f582ab1df..ccdb7c57b515d715a543555cd70d04edb6c7d7f3 100644
--- a/lib/sqlbuilder/interfaces.go
+++ b/lib/sqlbuilder/interfaces.go
@@ -19,7 +19,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
@@ -36,7 +36,7 @@ type Builder interface {
 	//
 	// Example:
 	//
-	//  q := builder.Select("first_name", "last_name").From("people").Where(...)
+	//  q := sqlbuilder.Select("first_name", "last_name").From("people").Where(...)
 	Select(columns ...interface{}) Selector
 
 	// SelectFrom creates a Selector that selects all columns (like SELECT *)
@@ -44,56 +44,56 @@ type Builder interface {
 	//
 	// Example:
 	//
-	//  q := builder.SelectFrom("people").Where(...)
+	//  q := sqlbuilder.SelectFrom("people").Where(...)
 	SelectFrom(table string) Selector
 
 	// InsertInto prepares an returns a Inserter that points at the given table.
 	//
 	// Example:
 	//
-	//   q := builder.InsertInto("books").Columns(...).Values(...)
+	//   q := sqlbuilder.InsertInto("books").Columns(...).Values(...)
 	InsertInto(table string) Inserter
 
 	// DeleteFrom prepares a Deleter that points at the given table.
 	//
 	// Example:
 	//
-	//  q := builder.DeleteFrom("tasks").Where(...)
+	//  q := sqlbuilder.DeleteFrom("tasks").Where(...)
 	DeleteFrom(table string) Deleter
 
 	// Update prepares and returns an Updater that points at the given table.
 	//
 	// Example:
 	//
-	//  q := builder.Update("profile").Set(...).Where(...)
+	//  q := sqlbuilder.Update("profile").Set(...).Where(...)
 	Update(table string) Updater
 
 	// Exec executes the given SQL query and returns the sql.Result.
 	//
 	// Example:
 	//
-	//  builder.Exec(`INSERT INTO books (title) VALUES("La Ciudad y los Perros")`)
+	//  sqlbuilder.Exec(`INSERT INTO books (title) VALUES("La Ciudad y los Perros")`)
 	Exec(query interface{}, args ...interface{}) (sql.Result, error)
 
 	// Query executes the given SQL query and returns *sql.Rows.
 	//
 	// Example:
 	//
-	//  builder.Query(`SELECT * FROM people WHERE name = "Mateo"`)
+	//  sqlbuilder.Query(`SELECT * FROM people WHERE name = "Mateo"`)
 	Query(query interface{}, args ...interface{}) (*sql.Rows, error)
 
 	// QueryRow executes the given SQL query and returns *sql.Row.
 	//
 	// Example:
 	//
-	//  builder.QueryRow(`SELECT * FROM people WHERE name = "Haruki" AND last_name = "Murakami" LIMIT 1`)
+	//  sqlbuilder.QueryRow(`SELECT * FROM people WHERE name = "Haruki" AND last_name = "Murakami" LIMIT 1`)
 	QueryRow(query interface{}, args ...interface{}) (*sql.Row, error)
 
 	// Iterator executes the given SQL query and returns an Iterator.
 	//
 	// Example:
 	//
-	//  builder.Iterator(`SELECT * FROM people WHERE name LIKE "M%"`)
+	//  sqlbuilder.Iterator(`SELECT * FROM people WHERE name LIKE "M%"`)
 	Iterator(query interface{}, args ...interface{}) Iterator
 }
 
@@ -115,14 +115,14 @@ type Selector interface {
 	//
 	//   s.Columns("name n")
 	//
-	// If you don't want the column to be escaped use the builder.RawString
+	// If you don't want the column to be escaped use the sqlbuilder.RawString
 	// function.
 	//
-	//   s.Columns(builder.RawString("DATABASE_NAME()"))
+	//   s.Columns(sqlbuilder.RawString("DATABASE_NAME()"))
 	//
 	// The above statement is equivalent to:
 	//
-	//   s.Columns(builder.Func("DATABASE_NAME"))
+	//   s.Columns(sqlbuilder.Func("DATABASE_NAME"))
 	Columns(columns ...interface{}) Selector
 
 	// From represents a FROM clause and is tipically used after Columns().
diff --git a/lib/sqlbuilder/scanner.go b/lib/sqlbuilder/scanner.go
index 9e841d431182b47158965e75befdf678a4b35a8a..6cc8df367020597b40b3e7a04702ba5351bd088e 100644
--- a/lib/sqlbuilder/scanner.go
+++ b/lib/sqlbuilder/scanner.go
@@ -19,7 +19,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/lib/sqlbuilder/select.go b/lib/sqlbuilder/select.go
index 276f089e74b84d81c79ed2dec7d558b8af4fbe10..ee729526436e041477ebb910b7f5260ea72296a8 100644
--- a/lib/sqlbuilder/select.go
+++ b/lib/sqlbuilder/select.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/lib/sqlbuilder/template_test.go b/lib/sqlbuilder/template_test.go
index c473da57f6f1b44a26e76bb96b4696260668a497..d5629f65da71c5991ed921d8718554e03f283225 100644
--- a/lib/sqlbuilder/template_test.go
+++ b/lib/sqlbuilder/template_test.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"upper.io/db.v2/internal/cache"
diff --git a/lib/sqlbuilder/update.go b/lib/sqlbuilder/update.go
index 23ad57d1d73ae8923a5316b846b2628d3f240886..de28551512194dd121f657b17550cd40c3a3b337 100644
--- a/lib/sqlbuilder/update.go
+++ b/lib/sqlbuilder/update.go
@@ -1,4 +1,4 @@
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/lib/sqlbuilder/wrapper.go b/lib/sqlbuilder/wrapper.go
index ef28556c09b77f3220c6aac65afa21d52bb04fc7..b3d9f1883572ed28393e4f2ddefed8b2272633f5 100644
--- a/lib/sqlbuilder/wrapper.go
+++ b/lib/sqlbuilder/wrapper.go
@@ -19,7 +19,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-package builder
+package sqlbuilder
 
 import (
 	"database/sql"
diff --git a/mysql/collection.go b/mysql/collection.go
index 782c2341f20e87a1eb792d52eabec59a519ca48d..3d967a38d0d9f3a31b833a87a7f374912a4eea05 100644
--- a/mysql/collection.go
+++ b/mysql/collection.go
@@ -75,7 +75,7 @@ func (t *table) Conds(conds ...interface{}) []interface{} {
 
 // Insert inserts an item (map or struct) into the collection.
 func (t *table) Insert(item interface{}) (interface{}, error) {
-	columnNames, columnValues, err := builder.Map(item)
+	columnNames, columnValues, err := sqlbuilder.Map(item)
 	if err != nil {
 		return nil, err
 	}
diff --git a/mysql/database.go b/mysql/database.go
index 9d21f90d0d0d73ccebba8bd7a7072715f017ef5d..d1c8e0d82b31eaff95073ea08c3d966bb8208c9d 100644
--- a/mysql/database.go
+++ b/mysql/database.go
@@ -37,14 +37,14 @@ import (
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.Builder
+	sqlbuilder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
 }
 
 var (
-	_ = builder.Database(&database{})
+	_ = sqlbuilder.Database(&database{})
 )
 
 // newDatabase binds *database with sqladapter and the SQL builer.
@@ -70,7 +70,7 @@ func (d *database) Open(connURL db.ConnectionURL) error {
 }
 
 // NewTx starts a transaction block.
-func (d *database) NewTx() (builder.Tx, error) {
+func (d *database) NewTx() (sqlbuilder.Tx, error) {
 	nTx, err := d.NewLocalTransaction()
 	if err != nil {
 		return nil, err
@@ -102,8 +102,8 @@ func (d *database) open() error {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return err
 	}
@@ -162,7 +162,7 @@ func (d *database) NewLocalCollection(name string) db.Collection {
 
 // Tx creates a transaction and passes it to the given function, if if the
 // function returns no error then the transaction is commited.
-func (d *database) Tx(fn func(tx builder.Tx) error) error {
+func (d *database) Tx(fn func(tx sqlbuilder.Tx) error) error {
 	return sqladapter.RunTx(d, fn)
 }
 
diff --git a/mysql/mysql.go b/mysql/mysql.go
index 357f221cc6963cd26f849646e310983813d65978..56d42cf4676a0796efd8ae024700871b675af438 100644
--- a/mysql/mysql.go
+++ b/mysql/mysql.go
@@ -36,7 +36,7 @@ const sqlDriver = `mysql`
 const Adapter = sqlDriver
 
 func init() {
-	builder.RegisterAdapter(Adapter, &builder.AdapterFuncMap{
+	sqlbuilder.RegisterAdapter(Adapter, &sqlbuilder.AdapterFuncMap{
 		New:   New,
 		NewTx: NewTx,
 		Open:  Open,
@@ -44,7 +44,7 @@ func init() {
 }
 
 // Open stablishes a new connection with the SQL server.
-func Open(settings db.ConnectionURL) (builder.Database, error) {
+func Open(settings db.ConnectionURL) (sqlbuilder.Database, error) {
 	d, err := newDatabase(settings)
 	if err != nil {
 		return nil, err
@@ -56,7 +56,7 @@ func Open(settings db.ConnectionURL) (builder.Database, error) {
 }
 
 // NewTx returns a transaction session.
-func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
+func NewTx(sqlTx *sql.Tx) (sqlbuilder.Tx, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -65,8 +65,8 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
@@ -81,7 +81,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 }
 
 // New wraps the given *sql.DB session and creates a new db session.
-func New(sess *sql.DB) (builder.Database, error) {
+func New(sess *sql.DB) (sqlbuilder.Database, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -90,8 +90,8 @@ func New(sess *sql.DB) (builder.Database, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
diff --git a/mysql/template_test.go b/mysql/template_test.go
index d7f099927fb44301050397b7687310f995ada08e..725cd0b00dcc80119c54e3a95a4dbafbc1a1c58e 100644
--- a/mysql/template_test.go
+++ b/mysql/template_test.go
@@ -9,7 +9,7 @@ import (
 )
 
 func TestTemplateSelect(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -147,7 +147,7 @@ func TestTemplateSelect(t *testing.T) {
 }
 
 func TestTemplateInsert(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -189,7 +189,7 @@ func TestTemplateInsert(t *testing.T) {
 }
 
 func TestTemplateUpdate(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -231,7 +231,7 @@ func TestTemplateUpdate(t *testing.T) {
 }
 
 func TestTemplateDelete(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
diff --git a/postgresql/collection.go b/postgresql/collection.go
index 71fba4bbdd5289f697c814aac4d11a4848bc6e8e..65ea696dccbe069272b92cd0ffe3258bf0f8b7e5 100644
--- a/postgresql/collection.go
+++ b/postgresql/collection.go
@@ -75,7 +75,7 @@ func (t *table) Conds(conds ...interface{}) []interface{} {
 
 // Insert inserts an item (map or struct) into the collection.
 func (t *table) Insert(item interface{}) (interface{}, error) {
-	columnNames, columnValues, err := builder.Map(item)
+	columnNames, columnValues, err := sqlbuilder.Map(item)
 	if err != nil {
 		return nil, err
 	}
diff --git a/postgresql/database.go b/postgresql/database.go
index 687957fdda0dd09b99e96be8fca0d727a440950e..c2b2f0d623decd756513512be98668d972b8712a 100644
--- a/postgresql/database.go
+++ b/postgresql/database.go
@@ -36,14 +36,14 @@ import (
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.Builder
+	sqlbuilder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
 }
 
 var (
-	_ = builder.Database(&database{})
+	_ = sqlbuilder.Database(&database{})
 )
 
 // newDatabase binds *database with sqladapter and the SQL builer.
@@ -69,7 +69,7 @@ func (d *database) Open(connURL db.ConnectionURL) error {
 }
 
 // NewTx starts a transaction block.
-func (d *database) NewTx() (builder.Tx, error) {
+func (d *database) NewTx() (sqlbuilder.Tx, error) {
 	nTx, err := d.NewLocalTransaction()
 	if err != nil {
 		return nil, err
@@ -101,8 +101,8 @@ func (d *database) open() error {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return err
 	}
@@ -161,7 +161,7 @@ func (d *database) NewLocalCollection(name string) db.Collection {
 
 // Tx creates a transaction and passes it to the given function, if if the
 // function returns no error then the transaction is commited.
-func (d *database) Tx(fn func(tx builder.Tx) error) error {
+func (d *database) Tx(fn func(tx sqlbuilder.Tx) error) error {
 	return sqladapter.RunTx(d, fn)
 }
 
diff --git a/postgresql/postgresql.go b/postgresql/postgresql.go
index aba4d744ac2fe8a4e2915a909c9a86fac30b3862..9612e6aa672eed1210545223e31d886536c93a66 100644
--- a/postgresql/postgresql.go
+++ b/postgresql/postgresql.go
@@ -36,7 +36,7 @@ const sqlDriver = `postgres`
 const Adapter = `postgresql`
 
 func init() {
-	builder.RegisterAdapter(Adapter, &builder.AdapterFuncMap{
+	sqlbuilder.RegisterAdapter(Adapter, &sqlbuilder.AdapterFuncMap{
 		New:   New,
 		NewTx: NewTx,
 		Open:  Open,
@@ -44,7 +44,7 @@ func init() {
 }
 
 // Open stablishes a new connection with the SQL server.
-func Open(settings db.ConnectionURL) (builder.Database, error) {
+func Open(settings db.ConnectionURL) (sqlbuilder.Database, error) {
 	d, err := newDatabase(settings)
 	if err != nil {
 		return nil, err
@@ -56,7 +56,7 @@ func Open(settings db.ConnectionURL) (builder.Database, error) {
 }
 
 // NewTx returns a transaction session.
-func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
+func NewTx(sqlTx *sql.Tx) (sqlbuilder.Tx, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -65,8 +65,8 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
@@ -81,7 +81,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 }
 
 // New wraps the given *sql.DB session and creates a new db session.
-func New(sess *sql.DB) (builder.Database, error) {
+func New(sess *sql.DB) (sqlbuilder.Database, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -90,8 +90,8 @@ func New(sess *sql.DB) (builder.Database, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
diff --git a/postgresql/template_test.go b/postgresql/template_test.go
index 02f0defcb08f520bad09c241802eba886ce9c3cd..fd1f237a8bea5273296fc6cc1f4a39dd84c3d30b 100644
--- a/postgresql/template_test.go
+++ b/postgresql/template_test.go
@@ -10,7 +10,7 @@ import (
 
 func TestTemplateSelect(t *testing.T) {
 
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -148,7 +148,7 @@ func TestTemplateSelect(t *testing.T) {
 }
 
 func TestTemplateInsert(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -190,7 +190,7 @@ func TestTemplateInsert(t *testing.T) {
 }
 
 func TestTemplateUpdate(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -232,7 +232,7 @@ func TestTemplateUpdate(t *testing.T) {
 }
 
 func TestTemplateDelete(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
diff --git a/postgresql/tx.go b/postgresql/tx.go
index 9d89e2fcc13e71ce91cea46cffe05bed23dc4e87..9d37aa9c69c0b30a18d252f3b5c0a8643bb9bc8e 100644
--- a/postgresql/tx.go
+++ b/postgresql/tx.go
@@ -31,5 +31,5 @@ type tx struct {
 }
 
 var (
-	_ = builder.Tx(&tx{})
+	_ = sqlbuilder.Tx(&tx{})
 )
diff --git a/ql/collection.go b/ql/collection.go
index fd66364118a004cf5b0c94dc633fea3a4f0e03bf..0a0e423d1d8f6016ca8c62d6da7568545c3f689f 100644
--- a/ql/collection.go
+++ b/ql/collection.go
@@ -112,7 +112,7 @@ func (t *table) Find(conds ...interface{}) db.Result {
 
 // Insert inserts an item (map or struct) into the collection.
 func (t *table) Insert(item interface{}) (interface{}, error) {
-	columnNames, columnValues, err := builder.Map(item)
+	columnNames, columnValues, err := sqlbuilder.Map(item)
 	if err != nil {
 		return nil, err
 	}
diff --git a/ql/database.go b/ql/database.go
index 2458fcff43227028ca4d9b222876ae27fd19b31c..e86da2db5b1cebd65086dbb6fb706854a7cbf05b 100644
--- a/ql/database.go
+++ b/ql/database.go
@@ -37,7 +37,7 @@ import (
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.Builder
+	sqlbuilder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
@@ -50,7 +50,7 @@ var (
 )
 
 var (
-	_ = builder.Database(&database{})
+	_ = sqlbuilder.Database(&database{})
 )
 
 // newDatabase binds *database with sqladapter and the SQL builer.
@@ -62,7 +62,7 @@ func newDatabase(settings db.ConnectionURL) (*database, error) {
 }
 
 // Open stablishes a new connection to a SQL server.
-func Open(settings db.ConnectionURL) (builder.Database, error) {
+func Open(settings db.ConnectionURL) (sqlbuilder.Database, error) {
 	d, err := newDatabase(settings)
 	if err != nil {
 		return nil, err
@@ -96,7 +96,7 @@ func (d *database) Open(connURL db.ConnectionURL) error {
 }
 
 // NewTx returns a transaction session.
-func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
+func NewTx(sqlTx *sql.Tx) (sqlbuilder.Tx, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -105,8 +105,8 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
@@ -121,7 +121,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 }
 
 // New wraps the given *sql.DB session and creates a new db session.
-func New(sess *sql.DB) (builder.Database, error) {
+func New(sess *sql.DB) (sqlbuilder.Database, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -130,8 +130,8 @@ func New(sess *sql.DB) (builder.Database, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
@@ -144,7 +144,7 @@ func New(sess *sql.DB) (builder.Database, error) {
 }
 
 // NewTx starts a transaction block.
-func (d *database) NewTx() (builder.Tx, error) {
+func (d *database) NewTx() (sqlbuilder.Tx, error) {
 	nTx, err := d.NewLocalTransaction()
 	if err != nil {
 		return nil, err
@@ -175,8 +175,8 @@ func (d *database) open() error {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return err
 	}
@@ -267,7 +267,7 @@ func (d *database) NewLocalCollection(name string) db.Collection {
 
 // Tx creates a transaction and passes it to the given function, if if the
 // function returns no error then the transaction is commited.
-func (d *database) Tx(fn func(tx builder.Tx) error) error {
+func (d *database) Tx(fn func(tx sqlbuilder.Tx) error) error {
 	return sqladapter.RunTx(d, fn)
 }
 
diff --git a/ql/ql.go b/ql/ql.go
index f0682f1d61e10fe2ce68fae09b35d37514fcf652..3c9a06b2bebd4111e59ead015dd2ea164bd66278 100644
--- a/ql/ql.go
+++ b/ql/ql.go
@@ -31,7 +31,7 @@ const sqlDriver = `ql`
 const Adapter = sqlDriver
 
 func init() {
-	builder.RegisterAdapter(Adapter, &builder.AdapterFuncMap{
+	sqlbuilder.RegisterAdapter(Adapter, &sqlbuilder.AdapterFuncMap{
 		New:   New,
 		NewTx: NewTx,
 		Open:  Open,
diff --git a/ql/template_test.go b/ql/template_test.go
index 286dad761693f11c9f5d02a3abb03c1787979546..7feef59c5684ae5adb2d6a080ca9ebf241b553aa 100644
--- a/ql/template_test.go
+++ b/ql/template_test.go
@@ -9,7 +9,7 @@ import (
 )
 
 func TestTemplateSelect(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -147,7 +147,7 @@ func TestTemplateSelect(t *testing.T) {
 }
 
 func TestTemplateInsert(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -189,7 +189,7 @@ func TestTemplateInsert(t *testing.T) {
 }
 
 func TestTemplateUpdate(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -231,7 +231,7 @@ func TestTemplateUpdate(t *testing.T) {
 }
 
 func TestTemplateDelete(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
diff --git a/sqlite/collection.go b/sqlite/collection.go
index ed27f6b37b099a42080e5d1b9df799eddf6ccc01..214c7d531fec296b4baddfb2aafc95af32bdbf70 100644
--- a/sqlite/collection.go
+++ b/sqlite/collection.go
@@ -75,7 +75,7 @@ func (t *table) Conds(conds ...interface{}) []interface{} {
 
 // Insert inserts an item (map or struct) into the collection.
 func (t *table) Insert(item interface{}) (interface{}, error) {
-	columnNames, columnValues, err := builder.Map(item)
+	columnNames, columnValues, err := sqlbuilder.Map(item)
 	if err != nil {
 		return nil, err
 	}
diff --git a/sqlite/database.go b/sqlite/database.go
index 7c71b38dc1b910e0ae61168958857c86a866cc2c..d368273d7431a91d4dca987a227f84bb60f2bbc8 100644
--- a/sqlite/database.go
+++ b/sqlite/database.go
@@ -38,14 +38,14 @@ import (
 // database is the actual implementation of Database
 type database struct {
 	sqladapter.BaseDatabase // Leveraged by sqladapter
-	builder.Builder
+	sqlbuilder.Builder
 
 	connURL db.ConnectionURL
 	txMu    sync.Mutex
 }
 
 var (
-	_ = builder.Database(&database{})
+	_ = sqlbuilder.Database(&database{})
 )
 
 var (
@@ -85,7 +85,7 @@ func (d *database) Open(connURL db.ConnectionURL) error {
 }
 
 // NewTx starts a transaction block.
-func (d *database) NewTx() (builder.Tx, error) {
+func (d *database) NewTx() (sqlbuilder.Tx, error) {
 	nTx, err := d.NewLocalTransaction()
 	if err != nil {
 		return nil, err
@@ -117,8 +117,8 @@ func (d *database) open() error {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return err
 	}
@@ -183,7 +183,7 @@ func (d *database) NewLocalCollection(name string) db.Collection {
 
 // Tx creates a transaction and passes it to the given function, if if the
 // function returns no error then the transaction is commited.
-func (d *database) Tx(fn func(tx builder.Tx) error) error {
+func (d *database) Tx(fn func(tx sqlbuilder.Tx) error) error {
 	return sqladapter.RunTx(d, fn)
 }
 
@@ -254,7 +254,7 @@ func (d *database) FindTablePrimaryKeys(tableName string) ([]string, error) {
 		PK   int    `db:"pk"`
 	}{}
 
-	if err := builder.NewIterator(rows).All(&columns); err != nil {
+	if err := sqlbuilder.NewIterator(rows).All(&columns); err != nil {
 		return nil, err
 	}
 
diff --git a/sqlite/sqlite.go b/sqlite/sqlite.go
index 48bf9877c99f465d68c7219ef08369da444807b3..641b5d854aa76bb23e8c15e884a863895bdf62e7 100644
--- a/sqlite/sqlite.go
+++ b/sqlite/sqlite.go
@@ -36,7 +36,7 @@ const sqlDriver = `sqlite`
 const Adapter = sqlDriver
 
 func init() {
-	builder.RegisterAdapter(Adapter, &builder.AdapterFuncMap{
+	sqlbuilder.RegisterAdapter(Adapter, &sqlbuilder.AdapterFuncMap{
 		New:   New,
 		NewTx: NewTx,
 		Open:  Open,
@@ -44,7 +44,7 @@ func init() {
 }
 
 // Open stablishes a new connection with the SQL server.
-func Open(settings db.ConnectionURL) (builder.Database, error) {
+func Open(settings db.ConnectionURL) (sqlbuilder.Database, error) {
 	d, err := newDatabase(settings)
 	if err != nil {
 		return nil, err
@@ -56,7 +56,7 @@ func Open(settings db.ConnectionURL) (builder.Database, error) {
 }
 
 // NewTx returns a transaction session.
-func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
+func NewTx(sqlTx *sql.Tx) (sqlbuilder.Tx, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -65,8 +65,8 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
@@ -81,7 +81,7 @@ func NewTx(sqlTx *sql.Tx) (builder.Tx, error) {
 }
 
 // New wraps the given *sql.DB session and creates a new db session.
-func New(sess *sql.DB) (builder.Database, error) {
+func New(sess *sql.DB) (sqlbuilder.Database, error) {
 	d, err := newDatabase(nil)
 	if err != nil {
 		return nil, err
@@ -90,8 +90,8 @@ func New(sess *sql.DB) (builder.Database, error) {
 	// Binding with sqladapter's logic.
 	d.BaseDatabase = sqladapter.NewBaseDatabase(d)
 
-	// Binding with builder.
-	b, err := builder.WithSession(d.BaseDatabase, template)
+	// Binding with sqlbuilder.
+	b, err := sqlbuilder.WithSession(d.BaseDatabase, template)
 	if err != nil {
 		return nil, err
 	}
diff --git a/sqlite/template_test.go b/sqlite/template_test.go
index a550ce4bbce067848f1095f83fbe83c66bdf5f6e..39f023f8ddce1b9d1a99f69f5c40a7e303024a80 100644
--- a/sqlite/template_test.go
+++ b/sqlite/template_test.go
@@ -9,7 +9,7 @@ import (
 )
 
 func TestTemplateSelect(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -147,7 +147,7 @@ func TestTemplateSelect(t *testing.T) {
 }
 
 func TestTemplateInsert(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -189,7 +189,7 @@ func TestTemplateInsert(t *testing.T) {
 }
 
 func TestTemplateUpdate(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
@@ -231,7 +231,7 @@ func TestTemplateUpdate(t *testing.T) {
 }
 
 func TestTemplateDelete(t *testing.T) {
-	b := builder.WithTemplate(template)
+	b := sqlbuilder.WithTemplate(template)
 	assert := assert.New(t)
 
 	assert.Equal(
diff --git a/wrapper.go b/wrapper.go
index de7efc28e98d4d19a01b47fe534d16dea250f482..f5974ec7e141d53cefe731723cfca86d7ff34f4a 100644
--- a/wrapper.go
+++ b/wrapper.go
@@ -35,6 +35,7 @@ func init() {
 	adapters = make(map[string]*AdapterFuncMap)
 }
 
+// AdapterFuncMap defines functions that need to be implemented by adapters.
 type AdapterFuncMap struct {
 	Open func(settings ConnectionURL) (Database, error)
 }