diff --git a/dongle_dynamic.c b/dongle_dynamic.c
index 3c3d13a1fadd280d60a56ebba15169bbde4c3a06..ef1e277ed484a503279136fc6ee27769fafc9b7e 100644
--- a/dongle_dynamic.c
+++ b/dongle_dynamic.c
@@ -1,113 +1,10 @@
-#include "dongle_language.h"
+#include "dongle_dynamic.h"
 
 
 static struct blob_buf blob_buffer;
 static struct ubus_context *ctx = NULL;
 
-enum {
-	LANGUAGE_NAME,
-	__LANGUAGE_MAX,
-};
-
-
-const struct blobmsg_policy set_language_policy[__LANGUAGE_MAX] = {
-	[LANGUAGE_NAME] = {.name = "profile_name", .type = BLOBMSG_TYPE_STRING},
-};
-
-
-int
-set_language(struct ubus_context *ctx, struct ubus_object *obj,
-		struct ubus_request_data *req, const char *method,
-		struct blob_attr *msg)
-{
-	system("echo set language ubus method called > /dev/console");
-
-	struct blob_attr *tb[__LANGUAGE_MAX];
-	char language_name[128];
-	struct write_result *response;
-
-	if (blobmsg_parse(set_language_policy, __LANGUAGE_MAX, tb, blob_data(msg), blob_len(msg)) != 0) {
-		fprintf(stderr, "set_language blob Parse failed\n");
-		goto leave_blobmsg_parse;
-	}
-	if (!tb[LANGUAGE_NAME])
-		goto leave_null_argument;
-
-
-	memset(language_name, 0, sizeof(language_name));
-	strncpy(language_name, blobmsg_get_string(tb[LANGUAGE_NAME]), 127);
-	printf("Input language name is: %s\n", language_name);
-
-	response = mobile_set_language(language_name);
-	if (!response->data)
-		goto leave_response;
-
-	//return print_to_ubus(response, ctx, req);
-
-
-leave_response:
-	return UBUS_STATUS_NO_DATA;
-leave_null_argument:
-	return UBUS_STATUS_INVALID_ARGUMENT;
-leave_blobmsg_parse:
-	return UBUS_STATUS_INVALID_ARGUMENT;
-
-}
-
-
-int
-get_language(struct ubus_context *ctx, struct ubus_object *obj,
-		struct ubus_request_data *req, const char *method,
-		struct blob_attr *msg)
-{
-	system("echo file_status called > /dev/console");
-
-	struct write_result *response;
-	char  *result;
-
-	response = mobile_get_language();
-	printf("mobile_set_language response: %s\n", response->data);
-	result = xml_parser(response, "//CurrentLanguage");
-	blob_buf_init(&blob_buffer, 0);
-	blobmsg_add_string(&blob_buffer, "langauge", result);
-	ubus_send_reply(ctx, req, blob_buffer.head);
-
-	return 0;
-}
-
-
-
-struct ubus_method language_object_methods[] = {
-	UBUS_METHOD("set_language", set_language, set_language_policy),
-	UBUS_METHOD_NOARG("get_language", get_language),
-};
-
-
-struct ubus_object_type language_object_type = UBUS_OBJECT_TYPE("dongle", language_object_methods);
-
-
-struct ubus_object langauge_object = {
-	.name = "dongle.langauge",
-	.type = &language_object_type,
-	.methods = language_object_methods,
-	.n_methods = ARRAY_SIZE(language_object_methods),
-};
-
-
-int
-dongle_add_object(struct ubus_object *obj)
-{
-	int ret = ubus_add_object(ctx, obj);
-
-	if (ret != 0)
-	{
-		fprintf(stderr, "Failed to publish object (%s)\n", obj->name);
-		return 1;
-	}
-
-	return 0;
-}
-
+#define DYNAMIC_OBJ_NAME_SIZE 50
 
 int
 dongle_ubus_init()
@@ -132,12 +29,7 @@ dongle_ubus_destroy()
 	ubus_free(ctx);
 }
 
-
-#define DYNAMIC_OBJ_NAME_SIZE 50
-
-struct ubus_method dynamic_object_methods[] = {
-	//
-};
+struct ubus_method dynamic_object_methods[] = {};
 
 struct ubus_object_type dynamic_object_type = UBUS_OBJECT_TYPE("dongle", dynamic_object_methods);
 
@@ -159,36 +51,33 @@ struct ubus_object *dongle_create_dynamic_object()
 	printf("dynamic_dongle_name: %s\n", dynamic_dongle_name);
 
 	//create ubus object instance..
-	dynamic_dongle_object = (struct ubus_object *)calloc(1, sizeof(dynamic_dongle_object));
+	printf("calloc intialize : dynamic_dongle_object\n");
+	dynamic_dongle_object = (struct ubus_object *)calloc(1, sizeof(struct ubus_object));
 	if (!dynamic_dongle_object) {
 		perror("dynamic_dongle_object");
 		goto fail_calloc_obj;
 	}
+	printf("calloc done: dynamic_dongle_object\n");
 
 	//name..
-	dynamic_dongle_object->name = dynamic_dongle_name;
+	dynamic_dongle_object->name = strndup(dynamic_dongle_name, DYNAMIC_OBJ_NAME_SIZE);
+	printf("object name %s\n", dynamic_dongle_object->name);
 
 	//type..
-	type = calloc(1, sizeof(dynamic_object_type));
-	if (!type) {
-		perror("type");
-		goto fail_calloc_type;
-	}
-	memcpy(type, &dynamic_object_type, sizeof(dynamic_object_type));
-	dynamic_dongle_object->type = type;
+	dynamic_dongle_object->type = &dynamic_object_type;
 
 	//methods..
-	dynamic_dongle_object->methods = type->methods;
+	dynamic_dongle_object->methods = dynamic_object_methods;
 
 	//method size..
 	dynamic_dongle_object->n_methods = ARRAY_SIZE(dynamic_object_methods);
 
 	return dynamic_dongle_object;
 
-fail_dev_instance:
-fail_calloc_obj:
 fail_calloc_type:
 	free(dynamic_dongle_object);
+fail_calloc_obj:
+fail_dev_instance:
 
 	return NULL;
 }
@@ -213,7 +102,7 @@ int publish_ubus_object(struct ubus_context *ctx, struct ubus_object *obj)
 	int ret;
 
 	ret = ubus_add_object(ctx, obj);
-	if (!ret) {
+	if (ret != 0) {
 		printf("Failed to publish object: %s\n", obj->name);
 		printf("Failed to publish object error: %s\n", ubus_strerror(ret));
 		goto leave;
@@ -250,12 +139,15 @@ int expose_infrastructure_object(struct ubus_context *ctx)
 	struct ubus_object *uobj;
 
 	uobj = dongle_create_dynamic_object();
-	if (uobj) {
-		printf("failed to create dynamic ubus obj");
+	if (!uobj) {
+		printf("failed to create dynamic ubus obj\n");
 		return 1;
 	}
-	if (publish_ubus_object(ctx, uobj)) {
-		printf("publish_ubus_object failed");
+
+	rv = publish_ubus_object(ctx, uobj);
+	printf("ret val: %d\n", rv);
+	if (rv) {
+		printf("publish_ubus_object failed\n");
 		return 1;
 	}
 
@@ -282,8 +174,8 @@ main()
 		return EXIT_FAILURE;
 	}
 
-	expose_infrastructure_object(ctx);
-	//dongle_add_object(&langauge_object);
+	rv = expose_infrastructure_object(ctx);
+	printf("rv val at end: %d\n", rv);
 	uloop_run();
 
 	return EXIT_SUCCESS;