diff --git a/grpcclientmdl/grpcclientmdl.go b/grpcclientmdl/grpcclientmdl.go
index 976a412317d597b629db27ea8031b0d938b14d08..6dcd0a358266798d05b9bf9f97526cea71b42cca 100644
--- a/grpcclientmdl/grpcclientmdl.go
+++ b/grpcclientmdl/grpcclientmdl.go
@@ -2,11 +2,12 @@ package grpcclientmdl
 
 import (
 	"context"
+	"errors"
 	"time"
 
 	"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/grpcbuildermdl"
 	"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/loggermdl"
-	"github.com/processout/grpc-go-pool"
+	grpcpool "github.com/processout/grpc-go-pool"
 	"google.golang.org/grpc"
 )
 
@@ -59,13 +60,45 @@ type Employee struct {
 }
 
 var instances map[string]*grpcpool.Pool
+var instancesList map[string]map[string]*grpcpool.Pool
 
 // Init init
-func Init() {
+func Init(grpcServerURLList []string) {
+
 	instances = make(map[string]*grpcpool.Pool)
+	loggermdl.LogDebug("Length of grpcServerURLList", len(grpcServerURLList))
+
+	for index := 0; index < len(grpcServerURLList); index++ {
+		CreateConnection(grpcServerURLList[index])
+	}
+	loggermdl.LogDebug("instances", instances)
+}
+
+//ByteHandler ByteHandler
+func ByteHandler(req *grpcbuildermdl.GRPCRequest, grpcServerURL string) ([]byte, error) {
+	if instances[grpcServerURL] != nil {
+		conn, err := instances[grpcServerURL].Get(context.Background())
+		if err != nil {
+			loggermdl.LogError("Failed to create gRPC pool: %v", err)
+		}
+
+		client := grpcbuildermdl.NewGRPCServiceClient(conn.ClientConn)
+
+		res, err := client.GRPCHandler(context.Background(), req)
+		if err != nil {
+			loggermdl.LogError("GRPCHandler err:", err)
+		}
+		return res.GetData(), nil
+	}
+	return []byte{}, errors.New("no grpc connection found")
+}
+
+// CreateConnection method
+func CreateConnection(serverURL string) {
 	var factory grpcpool.Factory
+	// serverURL := grpcServerURLList[index]
 	factory = func() (*grpc.ClientConn, error) {
-		conn, err := grpc.Dial("0.0.0.0:50051", grpc.WithInsecure())
+		conn, err := grpc.Dial(serverURL, grpc.WithInsecure())
 		if err != nil {
 			loggermdl.LogError("Failed to start gRPC connection: %v", err)
 		}
@@ -78,21 +111,5 @@ func Init() {
 	if err != nil {
 		loggermdl.LogError("Failed to create gRPC pool: %v", err)
 	}
-	instances["0.0.0.0:50051"] = pool
-}
-
-//ByteHandler ByteHandler
-func ByteHandler(req *grpcbuildermdl.GRPCRequest) ([]byte, error) {
-
-	conn, err := instances["0.0.0.0:50051"].Get(context.Background())
-	if err != nil {
-		loggermdl.LogError("Failed to create gRPC pool: %v", err)
-	}
-	client := grpcbuildermdl.NewGRPCServiceClient(conn.ClientConn)
-
-	res, err := client.GRPCHandler(context.Background(), req)
-	// var emp Employee
-	// json.Unmarshal(res.GetData(), emp)
-	// loggermdl.LogInfo("<ByteHandler>", res)
-	return res.GetData(), nil
+	instances[serverURL] = pool
 }
diff --git a/routebuildermdl/grpcservermdl.go b/routebuildermdl/grpcservermdl.go
index 89a07d2df5c404f2f861107bb09ce8af7f0691db..d419c1831496bf1705e1775af3dc93894f09722f 100644
--- a/routebuildermdl/grpcservermdl.go
+++ b/routebuildermdl/grpcservermdl.go
@@ -19,12 +19,13 @@ import (
 type Server struct{}
 
 // GRPCInit init
-func GRPCInit() {
+func GRPCInit(GRPCPort string, serverStatus chan string) {
 	loggermdl.LogInfo("GRPC init called")
-
-	list, err := net.Listen("tcp", "0.0.0.0:50051")
+	serverStatusString := "Sucess"
+	list, err := net.Listen("tcp", "0.0.0.0:"+GRPCPort)
 	if err != nil {
 		// log.Fatal("fail to listen: %v", err)
+		serverStatusString = "Failed"
 		loggermdl.LogError("GRPC listening failed: %v", err)
 
 	}
@@ -33,8 +34,10 @@ func GRPCInit() {
 	grpcbuildermdl.RegisterGRPCServiceServer(s, &Server{})
 	if err := s.Serve(list); err != nil {
 		// log.Fatal("Unable to start: %v", err)
+		serverStatusString = "Failed"
 		loggermdl.LogError("Unable to start GRPC server: %v", err)
 	}
+	serverStatus <- serverStatusString
 }
 
 type Employee struct {