diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index e5f4730fe68684cf309dab0a3142f2184d8f31a7..2bb4ce31eefd7a1b17b0807dffac3921579a7cb3 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -1232,6 +1232,53 @@ set(PHY_SRC_UE
   ${OPENAIR1_DIR}/PHY/TOOLS/lut.c
   )
 
+  set(PHY_NR_SRC
+  # depend on code generation from asn1c
+  ${RRC_FULL_DIR}/asn1_constants.h
+  # actual source
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
+  ${OPENAIR1_DIR}/PHY/INIT/nr_parms.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/file_output.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cdot_prod.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/time_meas.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/lut.c
+  )
+
+  set(PHY_NR_UE_SRC
+  # depend on code generation from asn1c
+  ${RRC_FULL_DIR}/asn1_constants.h
+  # actual source
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
+  ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
+  ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
+  ${OPENAIR1_DIR}/PHY/INIT/nr_parms.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/file_output.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/cdot_prod.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/time_meas.c
+  ${OPENAIR1_DIR}/PHY/TOOLS/lut.c
+  )
+
+
 if (${SMBV})
   set(PHY_SRC "${PHY_SRC} ${OPENAIR1_DIR}/PHY/TOOLS/smbv.c")
 endif  (${SMBV})
@@ -1242,6 +1289,8 @@ endif ()
 
 add_library(PHY ${PHY_SRC})
 add_library(PHY_UE ${PHY_SRC_UE})
+add_library(PHY_NR ${PHY_NR_SRC})
+add_library(PHY_NR_UE ${PHY_NR_UE_SRC})
 
 #Layer 2 library
 #####################
@@ -1940,7 +1989,7 @@ add_definitions(-DASN1_MINIMUM_VERSION=924)
 # add executables for operation
 #################################
 
-# lte-softmodem is both eNB and UE implementation
+# lte-softmodem is eNB implementation
 ###################################################
 
 add_executable(lte-softmodem
@@ -1980,7 +2029,7 @@ target_link_libraries (lte-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CR
 target_link_libraries (lte-softmodem ${LIB_LMS_LIBRARIES})
 target_link_libraries (lte-softmodem ${T_LIB})
 
-# lte-softmodem-nos1 is both eNB and UE implementation
+# lte-softmodem-nos1 is eNB implementation
 ###################################################
 add_executable(lte-softmodem-nos1
   ${rrc_h}
@@ -2053,7 +2102,7 @@ target_link_libraries (lte-uesoftmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${
 target_link_libraries (lte-uesoftmodem ${LIB_LMS_LIBRARIES})
 target_link_libraries (lte-uesoftmodem ${T_LIB})
 
-# lte-softmodem-nos1 is both eNB and UE implementation
+# lte-softmodem-nos1 is UE implementation
 ###################################################
 add_executable(lte-uesoftmodem-nos1
   ${rrc_h}
@@ -2087,6 +2136,43 @@ target_link_libraries (lte-uesoftmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt cry
 target_link_libraries (lte-uesoftmodem-nos1  ${LIB_LMS_LIBRARIES})
 target_link_libraries (lte-uesoftmodem-nos1 ${T_LIB})
 
+# nr-softmodem
+###################################################
+
+add_executable(nr-softmodem
+  #${rrc_h}
+  #${s1ap_h}
+  ${OPENAIR_BIN_DIR}/messages_xml.h
+  ${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
+  ${OPENAIR_TARGETS}/RT/USER/lte-ru.c
+  ${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
+  ${OPENAIR_TARGETS}/COMMON/create_tasks.c
+  ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
+  ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
+  #${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
+  ${OPENAIR_DIR}/common/utils/utils.c
+  ${OPENAIR_DIR}/common/utils/system.c
+  ${GTPU_need_ITTI}
+  ${XFORMS_SOURCE}
+  ${XFORMS_SOURCE_SOFTMODEM}
+  ${T_SOURCE}
+  ${CONFIG_SOURCES}
+  ${SHLIB_LOADER_SOURCES}
+  )
+
+target_link_libraries (nr-softmodem
+  -Wl,--start-group
+  UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY_NR LFDS GTPV1U SECU_CN SECU_OSA
+  ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB}
+  #RRC_LIB S1AP_LIB S1AP_ENB L2
+  #NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
+  -Wl,--end-group z dl)
+
+target_link_libraries (nr-softmodem ${LIBXML2_LIBRARIES})
+target_link_libraries (nr-softmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp  ${XFORMS_LIBRARIES} ${PROTOBUF_LIB}  ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
+target_link_libraries (nr-softmodem ${LIB_LMS_LIBRARIES})
+target_link_libraries (nr-softmodem ${T_LIB})
+
 # USIM process
 #################
 #add_executable(usim
diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai
index 5fd86249c56b08ffeadc6966bdf2645816b234d7..596b5aff7200f9133d257e19ad959a26f7c2b838 100755
--- a/cmake_targets/build_oai
+++ b/cmake_targets/build_oai
@@ -506,43 +506,28 @@ function main() {
   echo_info "3. building the compilation directives ..."
 
   DIR=$OPENAIR_DIR/cmake_targets
-  if [ "$NR" = "True" ]
-  then
-    if [ "$NOS1" =  "1" ] ; then
-        build_dir=nr_noS1_build_oai
-        if [ "$gNB" = "1" ] ; then
-           exec=nr-softmodem-nos1
-        fi
-        if [ "$nrUE" = "1" ] ; then
-           exec=nr-uesoftmodem-nos1
-        fi
-    else
-        build_dir=nr_build_oai
-        if [ "$gNB" = "1" ] ; then
-           exec=nr-softmodem
-        fi
-        if [ "$nrUE" = "1" ] ; then
-           exec=nr-uesoftmodem
-        fi
-    fi
+  if [ "$NOS1" = "1" ] ; then
+      build_dir=noS1_build_ran
+      if [ "$gNB" = "1" ] ; then
+         exec=nr-softmodem-nos1
+       elif [ "$nrUE" = "1" ] ; then
+         exec=nr-uesoftmodem-nos1
+       elif [ "$eNB" = "1" ] ; then
+         exec=lte-softmodem-nos1
+       elif [ "$UE" = "1" ] ; then
+         exec=lte-uesoftmodem-nos1
+       fi
   else
-    if [ "$NOS1" =  "1" ] ; then
-        build_dir=lte_noS1_build_oai
-        if [ "$eNB" = "1" ] ; then
-           exec=lte-softmodem-nos1
-        fi
-        if [ "$UE" = "1" ] ; then
-           exec=lte-uesoftmodem-nos1
-        fi
-    else
-        build_dir=lte_build_oai
-        if [ "$eNB" = "1" ] ; then
-           exec=lte-softmodem
-        fi
-        if [ "$UE" = "1" ] ; then
-           exec=lte-uesoftmodem
-        fi
-    fi
+      build_dir=build_ran
+      if [ "$gNB" = "1" ] ; then
+         exec=nr-softmodem
+       elif [ "$nrUE" = "1" ] ; then
+         exec=nr-uesoftmodem
+       elif [ "$eNB" = "1" ] ; then
+         exec=lte-softmodem
+       elif [ "$UE" = "1" ] ; then
+         exec=lte-uesoftmodem
+       fi
   fi
 
 # configuration module libraries, one currently available, using libconfig 
diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.template b/cmake_targets/lte_noS1_build_oai/CMakeLists.template
deleted file mode 100644
index c8fc68da529fa4db87461e2b27cfeab044165061..0000000000000000000000000000000000000000
--- a/cmake_targets/lte_noS1_build_oai/CMakeLists.template
+++ /dev/null
@@ -1,9 +0,0 @@
-set(ENABLE_ITTI True)
-set(ENABLE_USE_MME False)
-set(PDCP_USE_NETLINK True)
-set(LINK_ENB_PDCP_TO_IP_DRIVER True)
-set(LINK_ENB_PDCP_TO_GTPV1U False)
-set(PDCP_USE_NETLINK_QUEUES False)
-set(LINUX True)
-set(SECU False)
-set(NAS_UE False)
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index 706cd05fe9ff084d62bf818aebf5e126c6e183dc..2b8123c86b796b9927ec389df6431da67e85b2c8 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -147,7 +147,7 @@ clean_all_files() {
  set_openair_env
  dir=$OPENAIR_DIR/cmake_targets
  rm -rf $dir/log $OPENAIR_DIR/targets/bin/* 
- rm -rf $dir/lte_build_oai $dir/lte-simulators/build
+ rm -rf $dir/build_oai $dir/lte-simulators/build
  rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt
  rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build 
 }
diff --git a/openair1/PHY/INIT/defs_NR.h b/openair1/PHY/INIT/defs_NR.h
new file mode 100644
index 0000000000000000000000000000000000000000..f4915401ddf2252afe5b8efb7a5d2ddeb17c4e99
--- /dev/null
+++ b/openair1/PHY/INIT/defs_NR.h
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#ifndef __INIT_DEFS_NR__H__
+#define __INIT_DEFS_NR__H__
+
+#include "PHY/defs.h"
+
+#endif
diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c
new file mode 100644
index 0000000000000000000000000000000000000000..9a9e7c6b3eea5f2f228ce07d0b69d096d4d893e7
--- /dev/null
+++ b/openair1/PHY/INIT/nr_init.c
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include "defs.h"
+#include "defs_NR.h"
+#include "assertions.h"
+#include <math.h>
diff --git a/openair1/PHY/INIT/nr_parms.c b/openair1/PHY/INIT/nr_parms.c
new file mode 100644
index 0000000000000000000000000000000000000000..76ca0f043da0c35648e59dade46177e58b918e40
--- /dev/null
+++ b/openair1/PHY/INIT/nr_parms.c
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+#include "defs.h"
+#include "defs_NR.h"
+#include "log.h"
diff --git a/targets/RT/USER/nr-softmodem.c b/targets/RT/USER/nr-softmodem.c
new file mode 100644
index 0000000000000000000000000000000000000000..772f8f564199e28dcc2cabff928bef95e066ef57
--- /dev/null
+++ b/targets/RT/USER/nr-softmodem.c
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1  (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ *      contact@openairinterface.org
+ */
+
+ #include "nr-softmodem.h"
diff --git a/targets/RT/USER/nr-softmodem.h b/targets/RT/USER/nr-softmodem.h
new file mode 100644
index 0000000000000000000000000000000000000000..52ff1e1e3acd7a6839f326ca7a3b3508e8a3bd31
--- /dev/null
+++ b/targets/RT/USER/nr-softmodem.h
@@ -0,0 +1,4 @@
+#ifndef LTE_SOFTMODEM_H
+#define LTE_SOFTMODEM_H
+
+#endif