use knex as database layer