diff --git a/osm_common/dataclasses/temporal_dataclasses.py b/osm_common/dataclasses/temporal_dataclasses.py
index b5718b3..de04186 100644
--- a/osm_common/dataclasses/temporal_dataclasses.py
+++ b/osm_common/dataclasses/temporal_dataclasses.py
@@ -21,8 +21,24 @@
 
 
 @dataclass
-class VimCreateInput:
+class VimOperationInput:
+    """
+    Input dataclass for workflows that perform operations
+    (create, update, delete) on VIMs.
+
+    Attributes:
+    -----------
+    vim_uuid : str
+        The UUID of the VIM account as stored in the OSM vim
+        collection in Mongo
+
+    op_id: str
+        The operation (task) id for this workflow.  This is used
+        by the workflow at the end to update the status of the
+        operation in Mongo vim collection.
+    """
     vim_uuid: str
+    op_id: str
 
 
 # Activity Dataclasses
@@ -30,12 +46,69 @@
 
 @dataclass
 class TestVimConnectivityInput:
+    """
+    Input dataclass for the Test Vim Connectivity Ativity
 
-    """Docstring for why we use this"""
-
+    Attributes:
+    -----------
+    vim_uuid : str
+        The UUID of the VIM account as stored in the OSM vim
+        collection in Mongo
+    """
     vim_uuid: str
 
 
 @dataclass
-class UpdateVimStatusInput:
-    db_update_info: dict
+class UpdateVimStateInput:
+    """
+    Input dataclass for updating VIM state in the DB
+
+    Attributes:
+    -----------
+    vim_uuid : str
+        The UUID of the VIM account as stored in the OSM vim
+        collection in Mongo
+
+    operational_state : str
+        A representation of the operational state (ENABLED or ERROR)
+        of the VIM.
+
+    message : str
+        Human readable message providing additional details to the
+        operational state, such as the error message associated
+        with the ERROR operational_state.
+    """
+    vim_uuid: str
+    operational_state: str
+    message: str
+
+
+@dataclass
+class UpdateVimOperationStateInput:
+    """
+    Input dataclass for updating VIM Operations in the Mongo VIM
+    collection.
+
+    Attributes:
+    -----------
+    vim_uuid : str
+        The UUID of the VIM account as stored in the OSM vim
+        collection in Mongo
+
+    op_id: str
+        The operation (task) id for this workflow.  This is used
+        to update the status of the operation in Mongo vim collection.
+
+    op_state : str
+        A representation of the state of the specified operation id,
+        such as COMPLETED, or FAILED.
+
+    message : str
+        Human readable message providing additional details to the
+        operation state, such as the error message explaining why
+        the operation failed.
+    """
+    vim_uuid: str
+    op_id: str
+    op_state: str
+    message: str
diff --git a/osm_common/temporal_constants.py b/osm_common/temporal_constants.py
index 7290390..64569ff 100644
--- a/osm_common/temporal_constants.py
+++ b/osm_common/temporal_constants.py
@@ -19,7 +19,8 @@
 
 # Activities
 ACTIVITY_TEST_VIM_CONNECTIVITY = "test-vim-connectivity"
-ACTIVITY_UPDATE_VIM_STATUS = "update-vim-status"
+ACTIVITY_UPDATE_VIM_OPERATION_STATE = "update_operation_state"
+ACTIVITY_UPDATE_VIM_STATE = "update-vim-state"
 
 # Workflows
 WORKFLOW_VIM_CREATE = "vim-create"
diff --git a/osm_common/temporal_exceptions.py b/osm_common/temporal_exceptions.py
index 275bc45..df730a4 100644
--- a/osm_common/temporal_exceptions.py
+++ b/osm_common/temporal_exceptions.py
@@ -13,29 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from functools import wraps
-
 from temporalio.exceptions import ApplicationError
 
 
-class RetryableException(ApplicationError):
+class NonRetryableException(ApplicationError):
     def __init__(self, message):
-        super().__init__(message, non_retryable=False)
+        super().__init__(message, non_retryable=True)
 
 
-def wrap_exceptions(error_message="Unhandled exception"):
-    def Inner(func):
-        @wraps(func)
-        async def wrapper(*args, **kwargs):
-            try:
-                return await func(*args, **kwargs)
-            except Exception as err:
-                if isinstance(err, RetryableException):
-                    raise err
-                raise ApplicationError(
-                    f"{error_message}: {str(err)}", non_retryable=True
-                ) from err
-
-        return wrapper
-
-    return Inner
+class TimeOutError(ApplicationError):
+    def __init__(self, message):
+        super().__init__(message)
