rewrite db backend
diff --git a/src/db_test.c b/src/db_test.c
index ebfae2f..74d645f 100644
--- a/src/db_test.c
+++ b/src/db_test.c
@@ -20,31 +20,46 @@
 #include <openbsc/db.h>
 
 #include <stdio.h>
+#include <string.h>
 
 int main() {
 
-    if (db_init()) {
-        printf("DB: Failed to init database. Please check the option settings.\n");
-        return 1;
-    }    
-    printf("DB: Database initialized.\n");
+	if (db_init()) {
+		printf("DB: Failed to init database. Please check the option settings.\n");
+		return 1;
+	}	 
+	printf("DB: Database initialized.\n");
 
-    if (db_prepare()) {
-        printf("DB: Failed to prepare database.\n");
-        return 1;
-    }
-    printf("DB: Database prepared.\n");
+	if (db_prepare()) {
+		printf("DB: Failed to prepare database.\n");
+		return 1;
+	}
+	printf("DB: Database prepared.\n");
 
-    db_insert_imsi(3243245432351LLU);
-    db_insert_imsi(3243245432352LLU);
-    db_imsi_set_tmsi(3243245432345LLU, 99999999LLU);
-    db_imsi_set_lac(3243245432345LLU, 42);
+	struct gsm_subscriber *alice = NULL;
 
-    db_subscriber alice;
-    db_imsi_get_subscriber(3243245432345LLU, &alice);
-    db_tmsi_get_subscriber(99999999LLU, &alice);
+	alice = db_create_subscriber("3243245432345");
+	db_subscriber_alloc_tmsi(alice);
+	alice->lac=42;
+	db_set_subscriber(alice);
+	db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice);
+	free(alice);
 
-    db_fini();
+	alice = db_create_subscriber("3693245423445");
+	db_subscriber_alloc_tmsi(alice);
+	alice->lac=42;
+	db_set_subscriber(alice);
+	db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice);
+	free(alice);
 
-    return 0;
+	alice = db_create_subscriber("9993245423445");
+	db_subscriber_alloc_tmsi(alice);
+	alice->lac=42;
+	db_set_subscriber(alice);
+	db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice);
+	free(alice);
+
+	db_fini();
+
+	return 0;
 }