         interactorInitBlock: ((CustomInteractorInterfaceType.Type) -> (CustomInteractorInterfaceType))?,
         dataManagerInitBlock: ((CustomDataManagerType.Type) -> (CustomDataManagerType))?) -> CustomViewInterfaceType {
         
+        return customModule(
+            viewControllerID: self.viewControllerID,
+            presenterInitBlock: presenterInitBlock,
+            eventHandlerInitBlock: eventHandlerInitBlock,
+            interactorInitBlock: interactorInitBlock,
+            dataManagerInitBlock: dataManagerInitBlock
+        )
+        
+    }
+    
+    func customModule(
+        viewControllerID: String?,
+        presenterInitBlock: ((CustomPresenterInterfaceType.Type) -> (CustomPresenterInterfaceType))?,
+        eventHandlerInitBlock: ((CustomEventHandlerInterfaceType.Type) -> (CustomEventHandlerInterfaceType))?,
+        interactorInitBlock: ((CustomInteractorInterfaceType.Type) -> (CustomInteractorInterfaceType))?,
+        dataManagerInitBlock: ((CustomDataManagerType.Type) -> (CustomDataManagerType))?) -> CustomViewInterfaceType {
+        
         return module(
             storyboard: storyboard,
-            viewControllerID: viewControllerID,
+            viewControllerID: viewControllerID ?? self.viewControllerID,
             presenterType: CustomPresenterInterfaceType.self,
             eventHandlerType: CustomEventHandlerInterfaceType.self,
             interactorType: CustomInteractorInterfaceType.self,

        interactorInitBlock: ((CustomInteractorInterfaceType.Type) -> (CustomInteractorInterfaceType))?,
        dataManagerInitBlock: ((CustomDataManagerType.Type) -> (CustomDataManagerType))?)
        -> CustomViewInterfaceType
    
}


            eventHandlerInitBlock: eventHandlerInitBlock,
            interactorInitBlock: interactorInitBlock,
            dataManagerInitBlock: dataManagerInitBlock
        )
        
    }
    
