diff --git a/statefun-sdk-go/v3/pkg/statefun/egress.go b/statefun-sdk-go/v3/pkg/statefun/egress.go
index 20e7644..a266efd 100644
--- a/statefun-sdk-go/v3/pkg/statefun/egress.go
+++ b/statefun-sdk-go/v3/pkg/statefun/egress.go
@@ -58,8 +58,6 @@
 	ValueType SimpleType
 }
 
-func (k KafkaEgressBuilder) isEnvelope() {}
-
 func (k KafkaEgressBuilder) toEgressMessage() (*protocol.FromFunction_EgressMessage, error) {
 	if k.Target == nil {
 		return nil, errors.New("an egress record requires a Target")
diff --git a/statefun-sdk-go/v3/pkg/statefun/handler.go b/statefun-sdk-go/v3/pkg/statefun/handler.go
index 92e6f91..b86a609 100644
--- a/statefun-sdk-go/v3/pkg/statefun/handler.go
+++ b/statefun-sdk-go/v3/pkg/statefun/handler.go
@@ -70,16 +70,16 @@
 }
 
 func (h *handler) WithSpec(spec StatefulFunctionSpec) error {
-	log.Printf("registering Stateful Function %v]n", spec.FunctionType)
+	log.Printf("registering Stateful Function %v\n", spec.FunctionType)
 	if _, exists := h.module[spec.FunctionType]; exists {
 		err := fmt.Errorf("failed to register Stateful Function %s, there is already a spec registered under that type", spec.FunctionType)
-		log.Printf(err.Error())
+		log.Println(err.Error())
 		return err
 	}
 
 	if spec.Function == nil {
 		err := fmt.Errorf("failed to register Stateful Function %s, the Function instance cannot be nil", spec.FunctionType)
-		log.Printf(err.Error())
+		log.Println(err.Error())
 		return err
 	}
 
@@ -89,7 +89,7 @@
 		log.Printf("registering state specification %v\n", state)
 		if err := validateValueSpec(state); err != nil {
 			err := fmt.Errorf("failed to register Stateful Function %s: %w", spec.FunctionType, err)
-			log.Printf(err.Error())
+			log.Println(err.Error())
 			return err
 		}
 
@@ -147,7 +147,7 @@
 
 	response, err := h.Invoke(request.Context(), buffer.Bytes())
 	if err != nil {
-		log.Printf(err.Error())
+		log.Println(err.Error())
 		http.Error(writer, err.Error(), http.StatusInternalServerError)
 		return
 	}
