diff --git a/5G_system_TS29508_Nsmf_CNL113884.tpd b/5G_system_TS29508_Nsmf_CNL113884.tpd
new file mode 100644
index 0000000..a23ebe6
--- /dev/null
+++ b/5G_system_TS29508_Nsmf_CNL113884.tpd
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>5G_system_TS29508_Nsmf_CNL113884</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="5G_system_TS29571_CommonData_CNL113880" projectLocationURI="../5G_system_TS29571_CommonData_CNL113880/5G_system_TS29571_CommonData_CNL113880.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/TS29508_Nsmf_EventExposure.ttcn" relativeURI="src/TS29508_Nsmf_EventExposure.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/5G_system_TS29508_Nsmf_CNL113884</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/doc/5G_system_TS29508_Nsmf_Description.adoc b/doc/5G_system_TS29508_Nsmf_Description.adoc
new file mode 100644
index 0000000..580b49a
--- /dev/null
+++ b/doc/5G_system_TS29508_Nsmf_Description.adoc
@@ -0,0 +1,72 @@
+= 5G system TS29508 Nsmf Protocol Modules for TTCN-3 Toolset with TITAN, Description
+:author: Gábor Szalai
+:toc: left
+
+== About This Document
+
+This is the description for the 5G system TS29508 Nsmf protocol module. The 5G system TS29508 Nsmf protocol modules are developed for the TTCN-3 Toolset with Titan. 
+
+== Functionality
+
+The 5G system TS29508 Nsmf protocol module implements the object structures of the 3GPP TS 29508 v15.1.0<<_5, [5]>> in a formalized way, using the standard specification language TTCN-3. This allows defining of test data (templates) in the TTCN-3 language and correctly encoding/decoding messages when executing test suites using the Titan TTCN-3 test environment.
+The 5G system TS29508 Nsmf protocol module uses Titan’s JSON encoding <<_3, [3]>> and hence is usable with the Titan test toolset only.
+
+=== System Requirements
+Protocol modules are a set of TTCN-3 source code files that can be used as part of TTCN-3 test suites only. Hence, protocol modules alone do not put specific requirements on the system used. However, in order to compile and execute a TTCN-3 test suite using the set of protocol modules the following system requirements must be satisfied:
+
+* Titan TTCN-3 Test Executor version CRL 113 200/6 R5A (6.5.pl0) or higher installed. For Installation Guide see <<_2, [2]>>. Please note: This version of the test port is not compatible with Titan releases earlier than CRL 113 200/6 R5A.
+
+===	Installation
+The set of protocol modules can be used in developing TTCN-3 test suites using any text editor. Since the 5G system TS29508 Nsmf protocol is used as a part of a TTCN-3 test suite, this requires TTCN-3 Test Executor be installed before the module can be compiled and executed together with other parts of the test suite. For more details on the installation of TTCN-3 Test Executor see the relevant section of <<_2, [2]>>.
+
+== Interface description
+
+=== Encoding/decoding and other related functions
+This product also contains encoding/decoding functions, which assure correct encoding of messages when sent from Titan and correct decoding of messages when received by Titan. 
+
+==== Implemented encoding and decoding functions
+
+[source]
+----
+Name	Type of formal parameters	Type of return value
+f_enc_Nsmf_EventExposure(in Nsmf_EventExposure pdu) return octetstring 
+f_dec_Nsmf_EventExposure(in octetstring stream, out Nsmf_EventExposure pdu) return integer 
+f_enc_Nsmf_EventExposureNotification(in Nsmf_EventExposureNotification pdu) return octetstring 
+f_dec_Nsmf_EventExposureNotification(in octetstring stream, out Nsmf_EventExposureNotification pdu) return integer 
+----
+
+== Usage
+
+The protocol module provides abstract data types for JSON objects used by the services defined in the standard <<_5, [5]>>. The protocol module provides encoder and decoder functions for the JSON objects. The decoder validates the received JSON object based on the JSON schema as well. Only the validated JSON value is decoded.
+
+== Terminology	
+
+=== Abbreviations
+
+JSON:: JavaScript Object Notation
+
+PDU:: Protocol Data Unit
+
+TTCN-3:: Testing and Test Control Notation version 3
+
+== References
+
+[[_1]]
+[1]	ETSI ES 201 873-1 v4.4.1 (2012-04) +
+The Testing and Test Control Notation version 3. Part 1: Core Language
+
+[[_2]]
+[2]	1/ 198 17-CRL 113 200/6 Uen +
+Installation Guide for the TITAN TTCN-3 Test Executor
+
+[[_3]]
+[3]	2/198 17-CRL 113 200/6 Uen +
+Programmer's Technical Reference for Titan TTCN-3 Test Executor
+
+[[_4]]
+[4]	https://www.json.org
+
+[[_5]]
+[5] 3GPP TS 29508 v15.1.0+
+5G System; Session Management Services; Stage 3
+
diff --git a/doc/change.log b/doc/change.log
new file mode 100644
index 0000000..c4c7d49
--- /dev/null
+++ b/doc/change.log
@@ -0,0 +1,9 @@
+= 5G system TS29508 Nsmf Protocol Modules for TTCN-3 Toolset with TITAN, Change log
+:author: Gábor Szalai
+:toc: left
+
+== Changes
+
+=== R1A
+
+Initial revision
\ No newline at end of file
diff --git a/src/TS29508_Nsmf_EventExposure.ttcn b/src/TS29508_Nsmf_EventExposure.ttcn
new file mode 100644
index 0000000..38f32d6
--- /dev/null
+++ b/src/TS29508_Nsmf_EventExposure.ttcn
@@ -0,0 +1,111 @@
+/******************************************************************************
+* Copyright (c) 2000-2019  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v2.0
+* which accompanies this distribution, and is available at
+* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+*
+* Contributors:
+*   Gabor Szalai - initial implementation and initial documentation
+******************************************************************************/
+//
+//  File:               TS29508_Nsmf_EventExposure.ttcn
+//  Description:	      Type definitions for 3GPP TS29508
+/////////////////////////////////////////////// 
+module TS29508_Nsmf_EventExposure {
+
+  import from TS29571_CommonData all
+
+  external function f_enc_Nsmf_EventExposure(in Nsmf_EventExposure pdu) return octetstring 
+  with { extension "prototype(convert) encode(JSON)" }
+
+  external function f_dec_Nsmf_EventExposure(in octetstring stream, out Nsmf_EventExposure pdu) return integer 
+  with { extension "prototype(backtrack) decode(JSON)" }
+
+  external function f_enc_Nsmf_EventExposureNotification(in Nsmf_EventExposureNotification pdu) return octetstring 
+  with { extension "prototype(convert) encode(JSON)" }
+
+  external function f_dec_Nsmf_EventExposureNotification(in octetstring stream, out Nsmf_EventExposureNotification pdu) return integer 
+  with { extension "prototype(backtrack) decode(JSON)" }
+
+
+  type set Nsmf_EventExposure {
+    TS29571_CommonData.Supi    supi optional,
+    TS29571_CommonData.Dnn    dnn optional,
+    TS29571_CommonData.GroupId    groupId optional,
+    TS29571_CommonData.PduSessionId    pduSeId optional,
+    SubId    subId optional,
+    charstring notifId,
+    TS29571_CommonData.Uri    notifUri,
+    set of       TS29571_CommonData.Ipv4Addr    altNotifIpv4Addrs optional,
+    set of       TS29571_CommonData.Ipv6Addr    altNotifIpv6Addrs optional,
+    set of       EventSubscription    eventSubs,
+    TS29571_CommonData.Guami    guami optional,
+    charstring serviveName optional,
+    TS29571_CommonData.SupportedFeatures    supportedFeatures optional
+  }
+
+  type set Nsmf_EventExposureNotification {
+    charstring notifId,
+    set of       EventNotification    eventNotifs
+  }
+
+  type set EventSubscription {
+    SmfEvent    event,
+    NotificationMethod    notifMethod optional,
+    TS29571_CommonData.Uinteger    maxReportNbr optional,
+    TS29571_CommonData.DurationSec    monDur optional,
+    TS29571_CommonData.DurationSec    repPeriod optional,
+    TS29571_CommonData.DnaiChangeType    dnaiChgType optional
+  }
+
+  type set EventNotification {
+    SmfEvent    event,
+    TS29571_CommonData.DateTime    timeStamp,
+    TS29571_CommonData.Dnai    sourceDnai optional,
+    TS29571_CommonData.Dnai    targetDnai optional,
+    TS29571_CommonData.DnaiChangeType    dnaiChgType optional,
+    TS29571_CommonData.Ipv4Addr    sourceUeIpv4Addr optional,
+    TS29571_CommonData.Ipv6Prefix    sourceUeIpv6Prefix optional,
+    TS29571_CommonData.Ipv4Addr    targetUeIpv4Addr optional,
+    TS29571_CommonData.Ipv6Prefix    targetUeIpv6Prefix optional,
+    TS29571_CommonData.RouteToLocation    sourceTraRouting optional,
+    TS29571_CommonData.RouteToLocation    targetTraRouting optional,
+    TS29571_CommonData.Ipv4Addr    adIpv4Addr optional,
+    TS29571_CommonData.Ipv6Prefix    adIpv6Prefix optional,
+    TS29571_CommonData.Ipv4Addr    reIpv4Addr optional,
+    TS29571_CommonData.Ipv6Prefix    reIpv6Prefix optional,
+    TS29571_CommonData.PlmnId    plmnId optional,
+    TS29571_CommonData.AccessType    accType optional,
+    TS29571_CommonData.PduSessionId    pduSeId optional
+  }
+
+  type charstring SubId
+
+  type enumerated SmfEvent_enum { AC_TY_CH, TRA_ROUT_CH, DNAI_CH, PDU_SES_REL, PLMN_CH, UE_IP_CH}
+
+  type union SmfEvent {
+    SmfEvent_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+  type enumerated NotificationMethod_enum { PERIODIC, ONE_TIME, ON_EVENT_DETECTION}
+
+  type union NotificationMethod {
+    NotificationMethod_enum  enum_val,
+    charstring           other_val
+  } with {
+    variant "JSON: as value"
+  }
+
+
+
+
+
+
+} with {
+  encode "JSON"
+}
