diff --git a/internal/bbsim/responders/sadis/sadis.go b/internal/bbsim/responders/sadis/sadis.go
index df49d3a..d24daeb 100644
--- a/internal/bbsim/responders/sadis/sadis.go
+++ b/internal/bbsim/responders/sadis/sadis.go
@@ -37,10 +37,10 @@
 }
 
 // bandwidthProfiles contains some dummy profiles
-var bandwidthProfiles = []interface{}{
-	&SadisBWPEntry{ID: "User_Bandwidth1", AIR: 100000, CBS: 10000, CIR: 30000, EBS: 1000, EIR: 20000},
-	&SadisBWPEntry{ID: "User_Bandwidth2", AIR: 100000, CBS: 5000, CIR: 100000, EBS: 5000, EIR: 1000000},
-	&SadisBWPEntry{ID: "User_Bandwidth3", AIR: 100000, CBS: 5000, CIR: 100000, EBS: 5000, EIR: 1000000},
+var bandwidthProfiles = []*SadisBWPEntry{
+	&SadisBWPEntry{ID: "User_Bandwidth1", AIR: 100000, CBS: 10000, CIR: 30000, EBS: 1000, EIR: 100000},
+	&SadisBWPEntry{ID: "User_Bandwidth2", AIR: 100000, CBS: 5000, CIR: 100000, EBS: 5000, EIR: 100000},
+	&SadisBWPEntry{ID: "User_Bandwidth3", AIR: 100000, CBS: 5000, CIR: 1000000, EBS: 5000, EIR: 1000000},
 	&SadisBWPEntry{ID: "Default", AIR: 100000, CBS: 30, CIR: 600, EBS: 30, EIR: 400},
 }
 
@@ -56,7 +56,7 @@
 }
 type BandwidthProfileEntries struct {
 	Integration SadisIntegration `json:"integration"`
-	Entries     []interface{}    `json:"entries,omitempty"`
+	Entries     []*SadisBWPEntry `json:"entries,omitempty"`
 }
 
 type SadisIntegration struct {
@@ -97,21 +97,13 @@
 }
 
 type SadisUniTag struct {
-	UniTagMatch                int    `json:"uniTagMatch"`
-	PonCTag                    int    `json:"ponCTag"`
-	PonSTag                    int    `json:"ponSTag"`
-	UsPonCTagPriority          int    `json:"usPonCTagPriority"`
-	DsPonCTagPriority          int    `json:"dsPonCTagPriority"`
-	UsPonSTagPriority          int    `json:"usPonSTagPriority"`
-	DsPonSTagPriority          int    `json:"dsPonSTagPriority"`
-	EnableMacLearning          string `json:"enableMacLearning"`
-	ConfiguredMacAddress       string `json:"configuredMacAddress"`
-	TechnologyProfileID        int    `json:"technologyProfileId"`
-	UpstreamBandwidthProfile   string `json:"upstreamBandwidthProfile"`
-	DownstreamBandwidthProfile string `json:"downstreamBandwidthProfile"`
-	IsDhcpRequired             string `json:"isDhcpRequired"`
-	IsIgmpRequired             string `json:"isIgmpRequired"`
-	ServiceName                string `json:"serviceName"`
+	PonCTag                    int    `json:"ponCTag, omitempty"`
+	PonSTag                    int    `json:"ponSTag, omitempty"`
+	TechnologyProfileID        int    `json:"technologyProfileId, omitempty"`
+	UpstreamBandwidthProfile   string `json:"upstreamBandwidthProfile, omitempty"`
+	DownstreamBandwidthProfile string `json:"downstreamBandwidthProfile, omitempty"`
+	IsDhcpRequired             bool   `json:"isDhcpRequired, omitempty"`
+	IsIgmpRequired             bool   `json:"isIgmpRequired, omitempty"`
 }
 
 // SADIS BandwithProfile Entry
@@ -194,25 +186,23 @@
 		ID:        onu.Sn() + uniSuffix,
 		NasPortID: onu.Sn() + uniSuffix,
 		CircuitID: onu.Sn() + uniSuffix,
-		RemoteID:  olt.SerialNumber,
+		RemoteID:  onu.Sn() + uniSuffix,
 	}
+
+	// TODO this sadis config only works for the ATT workflow
+	// address VOL-2761 to support DT
 	sonuUniTag := SadisUniTag{
-		UniTagMatch:                0,
-		PonCTag:                    onu.CTag,
-		PonSTag:                    onu.STag,
-		UsPonCTagPriority:          1,
-		DsPonCTagPriority:          1,
-		UsPonSTagPriority:          1,
-		DsPonSTagPriority:          1,
-		EnableMacLearning:          "true",
-		ConfiguredMacAddress:       "0.0.0.0",
-		TechnologyProfileID:        64,
-		UpstreamBandwidthProfile:   "User_Bandwidth1",
-		DownstreamBandwidthProfile: "Default",
-		IsDhcpRequired:             "true",
-		IsIgmpRequired:             "true",
-		ServiceName:                "Default",
+		PonCTag:             onu.CTag,
+		PonSTag:             onu.STag,
+		TechnologyProfileID: 64,
+		// NOTE do we want to select a random bandwidth profile?
+		// if so use bandwidthProfiles[rand.Intn(len(bandwidthProfiles))].ID
+		UpstreamBandwidthProfile:   "Default",
+		DownstreamBandwidthProfile: "User_Bandwidth1",
+		IsDhcpRequired:             true,
+		IsIgmpRequired:             true,
 	}
+
 	sonuv2.UniTagList = append(sonuv2.UniTagList, sonuUniTag)
 	return sonuv2, nil
 }
@@ -352,8 +342,7 @@
 
 	sadisLogger.Debugf("Received request for SADIS bandwidth profile %s", id)
 
-	for _, e := range bandwidthProfiles {
-		bwpEntry := e.(*SadisBWPEntry)
+	for _, bwpEntry := range bandwidthProfiles {
 		if bwpEntry.ID == id {
 			w.WriteHeader(http.StatusOK)
 			json.NewEncoder(w).Encode(bwpEntry)
