diff --git a/.gitmodules b/.gitmodules
index 70ebe8704652b252962b6644b51b96f812431ccd..0d77dcfe4956be8e18b4f0d11f7d19de70e6a7f1 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,4 +1,4 @@
-[submodule "McoreUtils"]
-	path = McoreUtils
-	url = https://github.com/epics-modules/McoreUtils
+[submodule "MCoreUtils"]
+	path = MCoreUtils
+	url = https://github.com/epics-modules/MCoreUtils
 	ignore = all
diff --git a/McoreUtils b/MCoreUtils
similarity index 100%
rename from McoreUtils
rename to MCoreUtils
diff --git a/MCoreUtils.Makefile b/MCoreUtils.Makefile
index d85785da5faefcf98aa8a38e310e34ed665babcd..6277752767013fabbc048f3b516cbcf5dc7fbd20 100644
--- a/MCoreUtils.Makefile
+++ b/MCoreUtils.Makefile
@@ -23,7 +23,7 @@
 ## The following lines are mandatory, please don't change them.
 where_am_I := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
 include $(E3_REQUIRE_TOOLS)/driver.makefile
-include $(where_am_I)/../configure/DECOUPLE_FLAGS
+include $(E3_REQUIRE_CONFIG)/DECOUPLE_FLAGS
 
 
 ## Exclude linux-ppc64e6500
diff --git a/configure/CONFIG b/configure/CONFIG
index 2cad9538c1162b2346eb3ed0ef12c1289ff93efe..2b63d799534642f6668381add1905aa03dce47c7 100644
--- a/configure/CONFIG
+++ b/configure/CONFIG
@@ -1,3 +1,4 @@
+#
 VARS_EXCLUDES := $(.VARIABLES)
 
 ifneq (,$(findstring dev,$(MAKECMDGOALS)))
@@ -6,25 +7,14 @@ else
 include $(TOP)/configure/RELEASE
 endif
 
-# CONFIG=$(EPICS_BASE)/configure
-# include $(CONFIG)/CONFIG
-
 ifneq (,$(findstring dev,$(MAKECMDGOALS)))
 include $(TOP)/configure/CONFIG_MODULE_DEV
 else
 include $(TOP)/configure/CONFIG_MODULE
 endif
 
-## Asyn, ADSupport may needs to define other variables
-
--include $(TOP)/configure/CONFIG_OPTIONS
+E3_REQUIRE_LOCATION := $(EPICS_BASE)/$(E3_REQUIRE_NAME)/$(E3_REQUIRE_VERSION)
+REQUIRE_CONFIG := $(E3_REQUIRE_LOCATION)/configure
 
-## It is not necessary to modify the following files in most case.
-## Order is matter
+include $(REQUIRE_CONFIG)/CONFIG
 
-include $(TOP)/configure/E3/CONFIG_REQUIRE
-include $(TOP)/configure/E3/CONFIG_E3_PATH
-include $(TOP)/configure/E3/CONFIG_E3_MAKEFILE
-include $(TOP)/configure/E3/CONFIG_EPICS
-include $(TOP)/configure/E3/CONFIG_SUDO
-include $(TOP)/configure/E3/CONFIG_EXPORT
diff --git a/configure/CONFIG_MODULE b/configure/CONFIG_MODULE
index 3d9af5c2a5bc15be12de145ec5bf11887f2ac0a4..5f3c8b7907656b27a3a8c0c042e547cb4ac39150 100644
--- a/configure/CONFIG_MODULE
+++ b/configure/CONFIG_MODULE
@@ -1,29 +1,16 @@
-#
 EPICS_MODULE_NAME:=MCoreUtils
-
+#
 EPICS_MODULE_TAG:=tags/1.2.1
 #
 E3_MODULE_VERSION:=1.2.1
-
-# DEPENDENT MODULE VERSION
-# Example, 
-#ASYN_DEP_VERSION:=4.33.0
-#SEQ_DEP_VERSION:=2.1.21
-#PCRE_DEP_VERSION:=8.41.
-#ADCORE_DEP_VERSION:=3.2.0
-#ADSUPPORT_DEP_VERSION:=1.4.0
 #
-# 
-#E3_KMOD_SRC_PATH:=$(E3_MODULE_SRC_PATH)
+E3_MODULE_NAME:=$(EPICS_MODULE_NAME)
 #
-# In most case, we don't need to touch the following variables.
+E3_MODULE_SRC_PATH:=MCoreUtils
 #
-
-E3_MODULE_NAME:=$(EPICS_MODULE_NAME)
-E3_MODULE_SRC_PATH:=McoreUtils
 E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile
-
-
-
-# The definitions shown below can also be placed in an untracked CONFIG_MODULE.local
+#
+-include $(TOP)/configure/CONFIG_OPTIONS
+# The definitions shown below can also be placed in an untracked CONFIG_MODULE*.local
 -include $(TOP)/configure/CONFIG_MODULE.local
+#
diff --git a/configure/CONFIG_MODULE_DEV b/configure/CONFIG_MODULE_DEV
index 41d6f323613490bc94558e261727e50cca337f84..d6ea6b93793cc3118e3ce0625e7c3b60843d5f63 100644
--- a/configure/CONFIG_MODULE_DEV
+++ b/configure/CONFIG_MODULE_DEV
@@ -1,33 +1,18 @@
-#
 EPICS_MODULE_NAME:=MCoreUtils
+#
 EPICS_MODULE_TAG:=master
 #
 E3_MODULE_VERSION:=develop
-
-
-# DEPENDENT MODULE VERSION
-# Example, 
-#ASYN_DEP_VERSION:=4.33.0
-#SEQ_DEP_VERSION:=2.1.21
-#PCRE_DEP_VERSION:=8.41.
-#ADCORE_DEP_VERSION:=3.2.0
-#ADSUPPORT_DEP_VERSION:=1.4.0
-#
-# ONLY IF this module has the sequencer dependency. However,
-# in most case, we don't need to enable the following line,
-# the default - latest version will be used
-#E3_SEQUENCER_NAME:=sequencer
-#E3_SEQUENCER_VERSION:=2.1.21
-#
-# In most case, we don't need to touch the following variables.
 #
 E3_MODULE_NAME:=$(EPICS_MODULE_NAME)
+#
 E3_MODULE_SRC_PATH:=McoreUtils-dev
+#
 E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile
-
-#export E3_MODULE_DEV_GITURL:="https://where your git repo"
+#
 E3_MODULE_DEV_GITURL:="https://github.com/epics-modules/McoreUtils"
-
-
-# The definitions shown below can also be placed in an untracked CONFIG_MODULE_DEV.local
+#
+-include $(TOP)/configure/CONFIG_OPTIONS
+# The definitions shown below can also be placed in an untracked CONFIG_MODULE*.local
 -include $(TOP)/configure/CONFIG_MODULE_DEV.local
+#
diff --git a/configure/DECOUPLE_FLAGS b/configure/DECOUPLE_FLAGS
deleted file mode 100644
index fbd21915b2c880613589449ee1f8837c8432b6cc..0000000000000000000000000000000000000000
--- a/configure/DECOUPLE_FLAGS
+++ /dev/null
@@ -1,86 +0,0 @@
-# *** ISSUES
-# driver.makefile recursively read all include directories which were installed.
-# The only way to exclude header files is....
-
-iocStats_VERSION=
-autosave_VERSION=
-asyn_VERSION=
-busy_VERSION=
-modbus_VERSION=
-ipmiComm_VERSION=
-# Remove sequencer....due to "duplicated" VARIABLES
-#sequencer_VERSION=
-sscan_VERSION=
-
-
-std_VERSION=
-ip_VERSION=
-calc_VERSION=
-delaygen_VERSION=
-pcre_VERSION=
-stream_VERSION=
-s7plc_VERSION=
-recsync_VERSION=
-MCoreUtils_VERSION=
-
-devlib2_VERSION=
-mrfioc2_VERSION=
-
-exprtk_VERSION=
-motor_VERSION=
-ecmc_VERSION=
-EthercatMC_VERSION=
-ecmctraining_VERSION=
-
-keypress_VERSION=
-sysfs_VERSION=
-symbolname_VERSION=
-memDisplay_VERSION=
-regdev_VERSION=
-i2cDev_VERSION=
-
-tosca_VERSION=
-tsclib_VERSION=
-ifcdaqdrv2_VERSION=
-
-## The main issue is nds3, it is mandatory to disable it
-## 
-nds3_VERSION=
-nds3epics_VERSION=
-ifc14edrv_VERSION=
-ifcfastint_VERSION=
-
-
-nds_VERSION=
-loki_VERSION=
-nds_VERSION=
-sis8300drv_VERSION=
-sis8300_VERSION=
-sis8300llrfdrv_VERSION=
-sis8300llrf_VERSION=
-
-ADSupport_VERSION=
-ADCore_VERSION=
-ADSimDetector_VERSION=
-ADAndor_VERSION=
-ADAndor3_VERSION=
-ADPointGrey_VERSION=
-ADProsilica_VERSION=
-
-amcpico8_VERSION=
-adpico8_VERSION=
-adsis8300_VERSION=
-adsis8300bcm_VERSION=
-adsis8300bpm_VERSION=
-adsis8300fc_VERSION=
-
-pvCommon_VERSION=
-pvData_VERSION=
-pvAccess_VERSION=
-pva2pva_VERSION=
-pvDatabase_VERSION=
-normativeTypes_VERSION=
-pvaClient_VERSION=
-
-
-
diff --git a/configure/RELEASE b/configure/RELEASE
index ea7e407dc80661ecd94148e386547fac6e23c0b4..191b47e2c148ca9fee9ac03eefbb9a5266abdc0f 100644
--- a/configure/RELEASE
+++ b/configure/RELEASE
@@ -1,17 +1,11 @@
+#
 EPICS_BASE=/epics/base-3.15.5
 
 E3_REQUIRE_NAME:=require
-E3_REQUIRE_VERSION:=3.0.2
-
-
-# ONLY IF this module has the sequencer dependency. However,
-# in most case, we don't need to enable the following line,
-# the default - latest version will be used
-#E3_SEQUENCER_NAME:=sequencer
-#E3_SEQUENCER_VERSION:=2.1.21
-
+E3_REQUIRE_VERSION:=3.0.4
 
 # The definitions shown below can also be placed in an untracked RELEASE.local
 -include $(TOP)/../../RELEASE.local
 -include $(TOP)/../RELEASE.local
 -include $(TOP)/configure/RELEASE.local
+
diff --git a/configure/RELEASE_DEV b/configure/RELEASE_DEV
index edcd5c35eb8f15361be0de811d86693d09fa19a3..c9b6d57bb51651851e9784e2fad3954bf647b6ac 100644
--- a/configure/RELEASE_DEV
+++ b/configure/RELEASE_DEV
@@ -1,9 +1,11 @@
+#
 EPICS_BASE=/epics/base-3.15.5
 
 E3_REQUIRE_NAME:=require
-E3_REQUIRE_VERSION:=3.0.0
+E3_REQUIRE_VERSION:=3.0.4
 
 # The definitions shown below can also be placed in an untracked RELEASE_DEV.local
 -include $(TOP)/../../RELEASE_DEV.local
 -include $(TOP)/../RELEASE_DEV.local
 -include $(TOP)/configure/RELEASE_DEV.local
+
diff --git a/configure/RULES b/configure/RULES
index 8a1d8a146b0b31c9ea393dac74cfbbc2c11fcb82..978c976f8d298955277c6cd5ad14c7cda98db013 100644
--- a/configure/RULES
+++ b/configure/RULES
@@ -1,19 +1,6 @@
-#CONFIG
-# include $(EPICS_BASE)/configure/RULES
 
-include $(TOP)/configure/E3/DEFINES_FT
--include $(TOP)/configure/E3/RULES_PATCH
-include $(TOP)/configure/E3/RULES_E3
--include $(TOP)/configure/E3/RULES_PV
-include $(TOP)/configure/E3/RULES_E3_SITELIBS
-include $(TOP)/configure/E3/RULES_EPICS
--include $(TOP)/configure/E3/RULES_KMOD
+include $(REQUIRE_CONFIG)/RULES_SITEMODS
 
-include $(TOP)/configure/E3/RULES_DB
--include $(TOP)/configure/E3/RULES_VLIBS
-include $(TOP)/configure/E3/RULES_VARS
+include $(TOP)/configure/module/RULES_MODULE
+-include $(TOP)/configure/module/RULES_DKMS_L
 
-
-ifneq (,$(findstring dev,$(MAKECMDGOALS)))
-include $(TOP)/configure/E3/RULES_DEV
-endif
diff --git a/configure/module/RULES_DKMS_L b/configure/module/RULES_DKMS_L
new file mode 100644
index 0000000000000000000000000000000000000000..c66bf32a19289cdcf990bc893a2758ab9357b362
--- /dev/null
+++ b/configure/module/RULES_DKMS_L
@@ -0,0 +1,38 @@
+
+# KMOD_NAME := mrf
+
+# .PHONY: dkms_add
+
+# dkms_add: conf
+#       $(MSI) -M name="$(E3_MODULE_NAME)" -M  version="$(E3_MODULE_VERSION)" -M kmod_name="$(KMOD_NAME)" $(TOP)/dkms/dkms_with_msi.conf.in > $(TOP)/dkms/dkms_with_msi.conf
+#       $(QUIET) cat $(TOP)/dkms/dkms_with_msi.conf $(TOP)/dkms/dkms_without_msi.conf > $(TOP)/dkms/dkms.conf
+#       $(QUIET) install -m 644 $(TOP)/dkms/dkms.conf  $(E3_KMOD_SRC_PATH)/
+#       $(SUDO) install -d /usr/src/$(E3_MODULE_NAME)-$(E3_MODULE_VERSION)
+#       $(SUDO) cp -r $(TOP)/$(E3_KMOD_SRC_PATH)/* /usr/src/$(E3_MODULE_NAME)-$(E3_MODULE_VERSION)/
+#       $(SUDO) $(DKMS) add $(DKMS_ARGS)
+
+
+# setup:
+#       $(QUIET) $(SUDO2) 'echo KERNEL==\"uio*\", ATTR{name}==\"mrf-pci\", MODE=\"0666\" | tee  /etc/udev/rules.d/99-$(KMOD_NAME).rules'
+#       $(QUIET) $(SUDO) /bin/udevadm control --reload-rules
+#       $(QUIET) $(SUDO) /bin/udevadm trigger
+#       $(QUIET) $(SUDO2) 'echo $(KMOD_NAME) | tee /etc/modules-load.d/$(KMOD_NAME).conf'
+#       $(QUIET) $(SUDO) depmod --quick
+#       $(QUIET) $(SUDO) modprobe -rv $(KMOD_NAME)
+#       $(QUIET) $(SUDO) modprobe -v $(KMOD_NAME)
+#       $(QUIET) echo ""
+#       $(QUIET) echo ""
+#       $(QUIET) echo "It is OK to see \"E3/RULES_DKMS:37: recipe for target 'setup' failed\""
+#       $(QUIET) echo "---------------------------------------------------------------------"
+#       $(QUIET) -ls -l /dev/uio* 2>/dev/null
+#       $(QUIET) echo "---------------------------------------------------------------------"
+
+
+# setup_clean:
+#       $(QUIET) $(SUDO) modprobe -rv $(KMOD_NAME)
+#       $(SUDO) rm -f /etc/modules-load.d/$(KMOD_NAME).conf
+#       $(SUDO) rm -f /etc/udev/rules.d/99-$(KMOD_NAME).rules
+
+
+# .PHONY: setup setup_clean
+
diff --git a/configure/module/RULES_MODULE b/configure/module/RULES_MODULE
new file mode 100644
index 0000000000000000000000000000000000000000..589cdbfe843626a00e41d523fafb33601536c97a
--- /dev/null
+++ b/configure/module/RULES_MODULE
@@ -0,0 +1,23 @@
+#
+.PHONY: db pv epics epics-clean
+
+db: conf
+	$(QUIET) $(E3_MODULE_MAKE_CMDS) db
+
+pv:
+#	$(SUDO) install -m 755 -d $(E3_MODULES_INSTALL_LOCATION_INC)/pv
+#	cd $(E3_MODULES_INSTALL_LOCATION_INC) && $(SUDO) mv *.h pv/
+
+epics:
+	$(QUIET)echo "EPICS_BASE=$(EPICS_BASE)"        > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/RELEASE
+#	$(QUIET)echo "ASYN=$(M_ASYN)"                  > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/RELEASE
+#	$(QUIET)echo "SSCAN=$(M_SSCAN)"               >> $(TOP)/$(E3_MODULE_SRC_PATH)/configure/RELEASE
+#	$(QUIET)echo "SNCSEQ=$(M_SNCSEQ)"             >> $(TOP)/$(E3_MODULE_SRC_PATH)/configure/RELEASE
+	$(QUIET)echo "CHECK_RELEASE = YES"             > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/CONFIG_SITE
+#	$(QUIET)echo "INSTALL_LOCATION=$(M_DEVLIB2)"  >> $(TOP)/$(E3_MODULE_SRC_PATH)/configure/CONFIG_SITE
+	$(SUDOBASH) "$(MAKE) -C $(E3_MODULE_SRC_PATH)"
+
+epics-clean:
+	$(SUDOBASH) "$(MAKE) -C $(E3_MODULE_SRC_PATH) clean"
+
+
diff --git a/docs/.UPDATE_MODULE_LOG b/docs/.UPDATE_MODULE_LOG
new file mode 100644
index 0000000000000000000000000000000000000000..d063a8a61b4bfa687a084c7ee3202a7582b4b8e9
--- /dev/null
+++ b/docs/.UPDATE_MODULE_LOG
@@ -0,0 +1,14 @@
+
+>>
+Update Log Time    : 2018Nov10-1800-08CET
+>>
+Script is used     : e3TemplateGenerator
+Script Path        : /home/jhlee/gitsrc/e3-tools/e3TemplateGenerator
+User               : jhlee
+e3 repo Hash       : 90415f4
+
+EPICS_MODULE_NAME  :                         MCoreUtils
+E3 MODULE VERSION  :                              1.2.1
+EPICS BASE VERSION :                        base-3.15.5
+E3 REQUIRE VERSION :                              3.0.2
+>>