diff --git a/include/mme-app/contextManager/mmeProcedureCtxtManager.h b/include/mme-app/contextManager/mmeProcedureCtxtManager.h
new file mode 100644
index 0000000..c244fd4
--- /dev/null
+++ b/include/mme-app/contextManager/mmeProcedureCtxtManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ */
+
+#ifndef __MmeProcedureCtxtManager__
+#define __MmeProcedureCtxtManager__
+/******************************************************
+* mmeProcedureCtxtManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+	class MmeProcedureCtxt;
+	class MmeProcedureCtxtManager
+	{
+	public:
+		/****************************************
+		* MmeProcedureCtxtManager
+		*  constructor
+		****************************************/
+		MmeProcedureCtxtManager(int numOfBlocks);
+		
+		/****************************************
+		* MmeProcedureCtxtManager
+		*    Destructor
+		****************************************/
+		~MmeProcedureCtxtManager();
+		
+		/******************************************
+		 * allocateMmeProcedureCtxt
+		 *  allocate MmeProcedureCtxt data block
+		 ******************************************/
+		MmeProcedureCtxt* allocateMmeProcedureCtxt();
+		
+		/******************************************
+		 * deallocateMmeProcedureCtxt
+		 *  deallocate a MmeProcedureCtxt data block
+		 ******************************************/
+		void deallocateMmeProcedureCtxt(MmeProcedureCtxt* MmeProcedureCtxtp );
+	
+	private:
+		cmn::memPool::MemPoolManager<MmeProcedureCtxt> poolManager_m;
+	};
+};
+
+#endif
+		
+		
