diff --git a/agent_based/checkpoint_asg_chassis.py b/agent_based/checkpoint_asg_chassis.py
index f25c4a3063fad33e3ef4a8c8f42e17ae9512dae4..3295b0f16153b5a5f95d05a5ad2fffac6f095a62 100644
--- a/agent_based/checkpoint_asg_chassis.py
+++ b/agent_based/checkpoint_asg_chassis.py
@@ -11,6 +11,7 @@
 #
 # 2021-02-25: rewrite for CMK 2.x
 #             added warning/critical is chassis grade not equeal maxGrade
+# 2021-09-10: rewrite parse function
 #
 # ToDo: add warning if SGM/Chassis is missing compared to inventory time
 #
@@ -65,15 +66,15 @@
 #
 from pprint import pprint
 
-from typing import Mapping, Dict, List, Tuple, NamedTuple
+from typing import Mapping, Dict, List, Tuple, NamedTuple, Optional
 
-from .agent_based_api.v1.type_defs import (
+from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
     DiscoveryResult,
     CheckResult,
     StringTable,
 )
 
-from .agent_based_api.v1 import (
+from cmk.base.plugins.agent_based.agent_based_api.v1 import (
     register,
     Service,
     equals,
@@ -112,17 +113,15 @@ class CheckPointASGChassis(NamedTuple):
     sgms: List
 
 
-def parse_checkpoint_asg_chassis(string_table: List[StringTable]) -> CheckPointASGChassis:
-    chassis = CheckPointASGChassis
+def parse_checkpoint_asg_chassis(string_table: List[StringTable]) -> Optional[CheckPointASGChassis]:
     try:
-        chassis.info = CheckPointASGChassisInfo(*string_table[0][0])
-    except TypeError:
-        return None
-    chassis.chassis = string_table[1]
-    chassis.sgms = string_table[2]
-
-    parsed = chassis
-    return parsed
+        return CheckPointASGChassis(
+            info=CheckPointASGChassisInfo(*string_table[0][0]),
+            chassis=string_table[1],
+            sgms=string_table[2]
+        )
+    except (TypeError, IndexError):
+        pass
 
 
 def discovery_checkpoint_asg_chassis(section: CheckPointASGChassis) -> DiscoveryResult:
@@ -152,7 +151,7 @@ def check_checkpoint_asg_chassis(params, section: CheckPointASGChassis) -> Check
                 if not chassis.status.lower() in ['active', 'standby'] or chassis.grade != chassis.maxgrade:
                     yield Result(state=State.CRIT, summary=yield_text)
                 elif (chassis.status != inv_chassis.status) or (chassis.grade != inv_chassis.grade) or (chassis.maxgrade != inv_chassis.maxgrade):
-                    yield Result(State.WARN, notice=yield_text + ' (expected: %s, grade: %s/%s)' % (inv_chassis.status, inv_chassis.grade, inv_chassis.maxgrade))
+                    yield Result(state=State.WARN, notice=yield_text + ' (expected: %s, grade: %s/%s)' % (inv_chassis.status, inv_chassis.grade, inv_chassis.maxgrade))
                 else:
                     yield Result(state=State.OK, summary=yield_text)
 
diff --git a/checkpoint_asg_chassis.mkp b/checkpoint_asg_chassis.mkp
index f8766dd0c4278ff0608e44ff729186046bf56684..a2106c38776678c9d46049dedfdde96fa06e9c70 100644
Binary files a/checkpoint_asg_chassis.mkp and b/checkpoint_asg_chassis.mkp differ
diff --git a/packages/checkpoint_asg_chassis b/packages/checkpoint_asg_chassis
index f59b1c18e1489f5dd8136e283f251caea2874ac3..1fde3a6d0fe3674f289a75a2e1bae4f3f263ea1c 100644
--- a/packages/checkpoint_asg_chassis
+++ b/packages/checkpoint_asg_chassis
@@ -9,5 +9,5 @@
  'title': 'Check Point Maestro SMO ASG Chassis',
  'version': '20210225.v0.2',
  'version.min_required': '2.0.0b8',
- 'version.packaged': '2.0.0p1',
+ 'version.packaged': '2021.07.14',
  'version.usable_until': None}
\ No newline at end of file