diff --git a/rw_core/core/adapter_request_handler.go b/rw_core/core/adapter_request_handler.go
index 95ad69d..bfc4ee4 100644
--- a/rw_core/core/adapter_request_handler.go
+++ b/rw_core/core/adapter_request_handler.go
@@ -118,15 +118,15 @@
 		err := errors.New("invalid-number-of-args")
 		return nil, err
 	}
-	pID := &ca.StrType{}
+	pID := &voltha.ID{}
 	if err := ptypes.UnmarshalAny(args[0].Value, pID); err != nil {
 		log.Warnw("cannot-unmarshal-ID", log.Fields{"error": err})
 		return nil, err
 	}
-	log.Debugw("GetChildDevice", log.Fields{"deviceId": pID.Val})
+	log.Debugw("GetChildDevice", log.Fields{"deviceId": pID.Id})
 
 	if rhp.TestMode { // Execute only for test cases
-		return &voltha.Device{Id: pID.Val}, nil
+		return &voltha.Device{Id: pID.Id}, nil
 	}
 	return nil, nil
 }
@@ -137,7 +137,7 @@
 		err := errors.New("invalid-number-of-args")
 		return nil, err
 	}
-	pID := &ca.StrType{}
+	pID := &voltha.ID{}
 	if err := ptypes.UnmarshalAny(args[0].Value, pID); err != nil {
 		log.Warnw("cannot-unmarshal-ID", log.Fields{"error": err})
 		return nil, err
@@ -149,7 +149,7 @@
 		return nil, err
 	}
 
-	log.Debugw("GetPorts", log.Fields{"deviceID": pID.Val, "portype": pt.Val})
+	log.Debugw("GetPorts", log.Fields{"deviceID": pID.Id, "portype": pt.Val})
 
 	if rhp.TestMode { // Execute only for test cases
 		aPort := &voltha.Port{Label: "test_port"}
@@ -167,15 +167,15 @@
 		err := errors.New("invalid-number-of-args")
 		return nil, err
 	}
-	pID := &ca.StrType{}
+	pID := &voltha.ID{}
 	if err := ptypes.UnmarshalAny(args[0].Value, pID); err != nil {
 		log.Warnw("cannot-unmarshal-ID", log.Fields{"error": err})
 		return nil, err
 	}
-	log.Debugw("GetChildDevice", log.Fields{"deviceId": pID.Val})
+	log.Debugw("GetChildDevice", log.Fields{"deviceId": pID.Id})
 
 	if rhp.TestMode { // Execute only for test cases
-		return &voltha.Device{Id: pID.Val}, nil
+		return &voltha.Device{Id: pID.Id}, nil
 	}
 	//TODO: Complete
 	return nil, nil
diff --git a/rw_core/core/grpc_nbi_api_handler_client_test.go b/rw_core/core/grpc_nbi_api_handler_client_test.go
index 721271e..6a32ee5 100644
--- a/rw_core/core/grpc_nbi_api_handler_client_test.go
+++ b/rw_core/core/grpc_nbi_api_handler_client_test.go
@@ -36,9 +36,10 @@
 var testMode string
 
 /*
-NOTE:  These tests require the rw_core to run prior to executing these test cases
+Prerequite:  These tests require the rw_core to run prior to executing these test cases.
 */
 
+
 func setup() {
 	var err error
 
diff --git a/rw_core/main.go b/rw_core/main.go
index b73f131..25adee6 100644
--- a/rw_core/main.go
+++ b/rw_core/main.go
@@ -45,7 +45,7 @@
 }
 
 func init() {
-	log.AddPackage(log.JSON, log.WarnLevel, nil)
+	log.AddPackage(log.JSON, log.DebugLevel, nil)
 }
 
 func newKVClient(storeType string, address string, timeout int) (kvstore.Client, error) {
