)
 
 // NewRouter creates a router instance that serves the VNFInstance web methods
-func NewRouter(kubeconfig string) *mux.Router {
+func NewRouter(kubeconfig string, defClient rb.DefinitionManager,
+       profileClient rb.ProfileManager) *mux.Router {
        router := mux.NewRouter()
 
        vnfInstanceHandler := router.PathPrefix("/v1/vnf_instances").Subrouter()
        vnfInstanceHandler.HandleFunc("/{cloudRegionID}/{namespace}/{externalVNFID}", GetHandler).Methods("GET")
 
        //rbd is resource bundle definition
+       if defClient == nil {
+               defClient = rb.NewDefinitionClient()
+       }
+       defHandler := rbDefinitionHandler{client: defClient}
        resRouter := router.PathPrefix("/v1/rb").Subrouter()
-       rbdef := rbDefinitionHandler{client: rb.NewDefinitionClient()}
-       resRouter.HandleFunc("/definition", rbdef.createHandler).Methods("POST")
-       resRouter.HandleFunc("/definition/{rbdID}/content", rbdef.uploadHandler).Methods("POST")
-       resRouter.HandleFunc("/definition", rbdef.listHandler).Methods("GET")
-       resRouter.HandleFunc("/definition/{rbdID}", rbdef.getHandler).Methods("GET")
-       resRouter.HandleFunc("/definition/{rbdID}", rbdef.deleteHandler).Methods("DELETE")
+       resRouter.HandleFunc("/definition", defHandler.createHandler).Methods("POST")
+       resRouter.HandleFunc("/definition/{rbdID}/content", defHandler.uploadHandler).Methods("POST")
+       resRouter.HandleFunc("/definition", defHandler.listHandler).Methods("GET")
+       resRouter.HandleFunc("/definition/{rbdID}", defHandler.getHandler).Methods("GET")
+       resRouter.HandleFunc("/definition/{rbdID}", defHandler.deleteHandler).Methods("DELETE")
 
        //rbp is resource bundle profile
-       rbprofile := rbProfileHandler{client: rb.NewProfileClient()}
-       resRouter.HandleFunc("/profile", rbprofile.createHandler).Methods("POST")
-       resRouter.HandleFunc("/profile/{rbpID}/content", rbprofile.uploadHandler).Methods("POST")
-       resRouter.HandleFunc("/profile/help", rbprofile.helpHandler).Methods("GET")
-       resRouter.HandleFunc("/profile", rbprofile.listHandler).Methods("GET")
-       resRouter.HandleFunc("/profile/{rbpID}", rbprofile.getHandler).Methods("GET")
-       resRouter.HandleFunc("/profile/{rbpID}", rbprofile.deleteHandler).Methods("DELETE")
+       if profileClient == nil {
+               profileClient = rb.NewProfileClient()
+       }
+       profileHandler := rbProfileHandler{client: profileClient}
+       resRouter.HandleFunc("/profile", profileHandler.createHandler).Methods("POST")
+       resRouter.HandleFunc("/profile/{rbpID}/content", profileHandler.uploadHandler).Methods("POST")
+       resRouter.HandleFunc("/profile/help", profileHandler.helpHandler).Methods("GET")
+       resRouter.HandleFunc("/profile", profileHandler.listHandler).Methods("GET")
+       resRouter.HandleFunc("/profile/{rbpID}", profileHandler.getHandler).Methods("GET")
+       resRouter.HandleFunc("/profile/{rbpID}", profileHandler.deleteHandler).Methods("DELETE")
 
        // (TODO): Fix update method
        // vnfInstanceHandler.HandleFunc("/{vnfInstanceId}", UpdateHandler).Methods("PUT")