 	}
 }
 
-extension UInt16: StatementBindable {
-	public func bind(toRawSQLiteStatement stmt: SQLitePreparedStatement, parameter idx: Int32) throws {
+extension UInt16: ParameterBindable {
+	public func bind(to stmt: SQLitePreparedStatement, parameter idx: Int32) throws {
 		guard sqlite3_bind_int64(stmt, idx, Int64(self)) == SQLITE_OK else {
 			#if DEBUG
 				print("Error binding UInt16 \(self) to parameter \(idx): \(String(cString: sqlite3_errmsg(sqlite3_db_handle(stmt))))")

	}
}

extension UInt32: StatementBindable {
	public func bind(toRawSQLiteStatement stmt: SQLitePreparedStatement, parameter idx: Int32) throws {
		guard sqlite3_bind_int64(stmt, idx, Int64(self)) == SQLITE_OK else {
			#if DEBUG
				print("Error binding UInt32 \(self) to parameter \(idx): \(String(cString: sqlite3_errmsg(sqlite3_db_handle(stmt))))")

	}
}

extension Data: ParameterBindable {
	public func bind(to stmt: SQLitePreparedStatement, parameter idx: Int32) throws {
		try self.withUnsafeBytes { (bytes: UnsafePointer<UInt8>) throws in
			guard sqlite3_bind_blob(stmt, idx, bytes, Int32(self.count), SQLITE_TRANSIENT) == SQLITE_OK else {
				#if DEBUG
