diff --git a/library/PFCP_Templates.ttcn b/library/PFCP_Templates.ttcn
index d0e8b67..3f14a1f 100644
--- a/library/PFCP_Templates.ttcn
+++ b/library/PFCP_Templates.ttcn
@@ -11,7 +11,6 @@
 module PFCP_Templates {
 
 import from General_Types all;
-import from Native_Functions all;
 import from Osmocom_Types all;
 import from PFCP_Types all;
 
@@ -209,14 +208,14 @@
 	return t;
 };
 
-template (value) F_SEID ts_PFCP_F_SEID_ipv4(charstring addr_v4, OCT8 seid) := {
+template (value) F_SEID ts_PFCP_F_SEID_ipv4(OCT4 addr_v4, OCT8 seid) := {
         elementIdentifier := 57,
         lengthIndicator := 0,
         v6 := '0'B,
         v4 := '1'B,
         spare := '000000'B,
         seid := seid,
-        ipv4_address := f_inet_addr(addr_v4),
+        ipv4_address := addr_v4,
         ipv6_address := omit
 }
 
@@ -235,18 +234,18 @@
         spare := '0000'B
 }
 
-template (value) UE_IP_Address ts_PFCP_UE_IP_Address_v4(charstring addr_v4, boolean is_destination := true) := {
+template (value) UE_IP_Address ts_PFCP_UE_IP_Address_v4(OCT4 addr_v4, boolean is_destination := true) := {
         elementIdentifier := 93,
         lengthIndicator := 0,
         v6 := '0'B,
         v4 := '1'B,
         sd := bool2bit(is_destination),
         spare := '00000'B,
-        ipv4_address := f_inet_addr(addr_v4),
+        ipv4_address := addr_v4,
         ipv6_address := omit
 }
 
-template (value) F_TEID ts_PFCP_F_TEID_ipv4(OCT4 teid, charstring addr_v4) := {
+template (value) F_TEID ts_PFCP_F_TEID_ipv4(OCT4 teid, OCT4 addr_v4) := {
         elementIdentifier := 21,
         lengthIndicator := 0,
         v4 := '1'B,
@@ -255,7 +254,7 @@
         chid := '0'B,
         spare := '0000'B,
         teid := teid,
-        ipv4_address := f_inet_addr(addr_v4),
+        ipv4_address := addr_v4,
         ipv6_address := omit,
         choose_id := omit
 }
@@ -325,13 +324,13 @@
         spare := '0000'B
 }
 
-template (value) Outer_Header_Creation ts_PFCP_Outer_Header_Creation_GTP_ipv4(OCT4 remote_teid, charstring remote_addr_v4) := {
+template (value) Outer_Header_Creation ts_PFCP_Outer_Header_Creation_GTP_ipv4(OCT4 remote_teid, OCT4 remote_addr_v4) := {
         elementIdentifier := 84,
         lengthIndicator := 0,
         ohc_description_oct5 := '00000001'B,
         ohc_description_oct6 := '00000000'B,
         teid := remote_teid,
-        ipv4 := f_inet_addr(remote_addr_v4),
+        ipv4 := remote_addr_v4,
         ipv6 := omit,
         udp_port := omit
 }
@@ -419,13 +418,16 @@
 	}
 }
 
-function ts_PFCP_Session_Est_Req(charstring node_id, OCT8 cp_seid, Create_PDR_list create_pdr, Create_FAR_list create_far)
+function ts_PFCP_Session_Est_Req(template (value) Node_ID node_id,
+				 template (value) F_SEID cp_f_seid,
+				 Create_PDR_list create_pdr,
+				 Create_FAR_list create_far)
  return template (value) PDU_PFCP {
 	var template (value) PDU_PFCP t := ts_PDU_PFCP();
 	t.message_body := {
 		pfcp_session_establishment_request := {
-			node_id := ts_PFCP_Node_ID_ipv4(f_inet_addr(node_id)),
-			CP_F_SEID := ts_PFCP_F_SEID_ipv4(node_id, cp_seid),
+			node_id := node_id,
+			CP_F_SEID := cp_f_seid,
 			create_PDR_list := create_pdr,
 			create_FAR_list := create_far,
 			create_URR_list := omit,
