diff --git a/cli/cmd/subManagementAdd.go b/cli/cmd/subManagementAdd.go
index b438f58166ffe4b0fb6180d0e797f4911d282aa1..e61ffbfbe5b2f80724bebb48e9298ba00f6407f1 100644
--- a/cli/cmd/subManagementAdd.go
+++ b/cli/cmd/subManagementAdd.go
@@ -46,10 +46,10 @@ var subAddCmd = &cobra.Command{
 	Run: func(cmd *cobra.Command, args []string) {
 		spinner, _ := pterm.DefaultSpinner.Start("Adding subscription")
 
-		// TODO: add option to provide sub options??
+		// Note: Currently, doesn't support providing options/paths.
 		_, err := api.Add(createContextWithAuthorization(), viper.GetString("controllerAPIEndpoint"), mneUUID, nil)
 		if err != nil {
-			pterm.Error.Println(err)
+			spinner.Fail(err)
 			return
 		}
 		spinner.Success()
diff --git a/controller/northbound/server/submanagement.go b/controller/northbound/server/submanagement.go
index 8710ef3def57ebc956190fa3b8c6b6361a7dd704..762fffe8cc5b3858070c6df06f8d6bfb4597e336 100644
--- a/controller/northbound/server/submanagement.go
+++ b/controller/northbound/server/submanagement.go
@@ -138,22 +138,26 @@ func (s *SubManagementServer) Add(ctx context.Context, request *subpb.AddRequest
 		}, err
 	}
 
-	var paths [][]string
-	for _, path := range request.Subscription.Paths {
-		var elems []string
-		for _, elem := range path.Elem {
-			elems = append(elems, elem)
+	var gNMISubScribeOptions *gnmi.SubscribeOptions
+	if request.Subscription != nil {
+		var paths [][]string
+		for _, path := range request.Subscription.Paths {
+			var elems []string
+			for _, elem := range path.Elem {
+				elems = append(elems, elem)
+			}
+			paths = append(paths, elems)
 		}
-		paths = append(paths, elems)
-	}
-
-	err = s.networkElementWatchter.SubscribeToNetworkElementWithID(mneID,
-		&gnmi.SubscribeOptions{
+		gNMISubScribeOptions = &gnmi.SubscribeOptions{
 			Mode:           request.Subscription.SubscribeOptions.GnmiMode,
 			StreamMode:     request.Subscription.SubscribeOptions.GnmiStreamMode,
 			SampleInterval: request.Subscription.SubscribeOptions.SampleInterval,
 			Paths:          paths,
-		},
+		}
+	}
+
+	err = s.networkElementWatchter.SubscribeToNetworkElementWithID(mneID,
+		gNMISubScribeOptions,
 	)
 	if err != nil {
 		return &subpb.AddResponse{
diff --git a/controller/nucleus/networkElementWatcher.go b/controller/nucleus/networkElementWatcher.go
index e6d19efd4019d24a953db1745ab46a65e4562769..8b542d086ca5c61e7fb5d776137c6c11260fd858 100644
--- a/controller/nucleus/networkElementWatcher.go
+++ b/controller/nucleus/networkElementWatcher.go
@@ -108,6 +108,14 @@ func (n *NetworkElementWatcher) SubscribeToNetworkElement(mne networkelement.Net
 // SubscribeToNetworkElementWithID subscribes to the network element matching the provided ID according to provided SubscribeOptions.
 // SubscribeOptions can be nil. Use nil for a fixed, pre-defined set of gNMI subscription options (streaming in sample mode each second).
 func (n *NetworkElementWatcher) SubscribeToNetworkElementWithID(mneID uuid.UUID, opts *gnmi.SubscribeOptions) error {
+	if opts == nil {
+		opts = &gnmi.SubscribeOptions{
+			Mode:           gNMISubscribeMode,
+			StreamMode:     gNMIStreamMode,
+			SampleInterval: subscribeSampleInterval,
+		}
+	}
+
 	mne, err := n.mneService.Get(store.Query{ID: mneID})
 	if err != nil {
 		log.Error(err)