diff --git a/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl.go b/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl.go
index c7d9539..67ade9f 100644
--- a/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl.go
+++ b/go/src/v.io/x/sensorlog/internal/sbmodel/types.vdl.go
@@ -15,7 +15,6 @@
 
 import (
 	"fmt"
-	"reflect"
 	"time"
 	"v.io/v23/vdl"
 	time_2 "v.io/v23/vdlroot/time"
@@ -106,6 +105,7 @@
 	return nil
 }
 func (t *VDeviceCfgTarget) FinishFields(_ vdl.FieldsTarget) error {
+
 	return nil
 }
 
@@ -174,6 +174,7 @@
 	return nil
 }
 func (t *KDeviceCfgTarget) FinishFields(_ vdl.FieldsTarget) error {
+
 	return nil
 }
 
@@ -278,6 +279,7 @@
 	return nil
 }
 func (t *VStreamDefTarget) FinishFields(_ vdl.FieldsTarget) error {
+
 	return nil
 }
 
@@ -299,10 +301,10 @@
 		val, err := &vdl.StringTarget{Value: &t.Value.Script}, error(nil)
 		return nil, val, err
 	case "Start":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Start))
+		val, err := &time_2.TimeTarget{Value: &t.Value.Start}, error(nil)
 		return nil, val, err
 	case "Interval":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Interval))
+		val, err := &time_2.DurationTarget{Value: &t.Value.Interval}, error(nil)
 		return nil, val, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_types_v_io_x_sensorlog_internal_sbmodel_SamplerDef)
@@ -312,6 +314,7 @@
 	return nil
 }
 func (t *SamplerDefTarget) FinishFields(_ vdl.FieldsTarget) error {
+
 	return nil
 }
 
@@ -396,6 +399,7 @@
 	return nil
 }
 func (t *KStreamDefTarget) FinishFields(_ vdl.FieldsTarget) error {
+
 	return nil
 }
 
@@ -572,7 +576,7 @@
 		val, err := &vdl.StringTarget{Value: &t.Value.StreamId}, error(nil)
 		return nil, val, err
 	case "Timestamp":
-		val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Timestamp))
+		val, err := &time_2.TimeTarget{Value: &t.Value.Timestamp}, error(nil)
 		return nil, val, err
 	default:
 		return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_types_v_io_x_sensorlog_internal_sbmodel_KDataPoint)
@@ -582,6 +586,7 @@
 	return nil
 }
 func (t *KDataPointTarget) FinishFields(_ vdl.FieldsTarget) error {
+
 	return nil
 }
 
