 
 				(statement: SQLiteStmt) -> () in
 				for i in 0..<params.count {
-					try statement.bind(position: i, params[i])
+					try statement.bind(position: i+1, params[i])
 				}
 
 			}, handleRow: {(statement: SQLiteStmt, i:Int) -> () in


				(statement: SQLiteStmt) -> () in
				for i in 0..<params.count {
					try statement.bind(position: i, params[i])
				}
			})
			self.connection.close(db)

		self.to(self.results.rows[0])
	}


	@discardableResult
	open func save() throws {
		do {
			if keyIsEmpty() {
				try insert(asData(1))
			} else {
				let (idname, idval) = firstAsKey()
				try update(data: asData(1), idName: idname, idValue: idval)
			}
		} catch {
			throw StORMError.error(String(describing: error))
		}
	}
	@discardableResult
	open func save(set: (_ id: Any)->Void) throws {
		do {
			if keyIsEmpty() {
				let setId = try insert(asData(1))
				set(setId)
			} else {
				let (idname, idval) = firstAsKey()
				try update(data: asData(1), idName: idname, idValue: idval)
			}
		} catch {
			throw StORMError.error(String(describing: error))
		}
	}

	@discardableResult
	override open func create() throws {
		do {
			try insert(asData())
		} catch {
			throw StORMError.error(String(describing: error))
		}
	}
}


