diff --git a/agent_based/checkpoint_asg_interface.py b/agent_based/checkpoint_asg_interface.py
index 608fa25b7adf7e9ac54e6e9eb5e6e815758a1a7c..e5b5421acabf55513eb72bf29e89ad624eb60349 100644
--- a/agent_based/checkpoint_asg_interface.py
+++ b/agent_based/checkpoint_asg_interface.py
@@ -10,6 +10,7 @@
 # Monitor Check Point Maestro SMO interfaces
 #
 # 2021-03-03: rewrite for CMK 2.0
+# 2021-09-10: changed render function to networkbandwidth
 #
 # sample snmpwalk (for one interface)
 # .1.3.6.1.4.1.2620.1.48.26.1.1.1.4.0 = Gauge32: 4
@@ -48,13 +49,13 @@ import time
 
 from typing import Mapping, Dict, List, Tuple, NamedTuple
 
-from .agent_based_api.v1.type_defs import (
+from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
     DiscoveryResult,
     StringTable,
     CheckResult,
 )
 
-from .agent_based_api.v1 import (
+from cmk.base.plugins.agent_based.agent_based_api.v1 import (
     register,
     Service,
     equals,
@@ -87,13 +88,13 @@ class CheckPointASGInterface(NamedTuple):
     asgNetIfTx: int
 
 
-def parse_checkpoint_asg_interface(string_table: List[StringTable]) -> Dict:
+def parse_checkpoint_asg_interface(string_table: List[StringTable]) -> Dict[str, CheckPointASGInterface]:
     parsed = {}
     for entry in string_table[0]:
-        asgNetIfName, asgNetIfIPv4Addr, asgNetIfIPv6Addr, asgNetIfMACAddr, asgNetIfInfo, asgNetIfState, asgNetIfSpeed, asgNetIfMTU, asgNetIfDuplex, asgNetIfRx, asgNetIfTx = entry
+        asgNetIfName, asgNetIfIPv4Addr, asgNetIfIPv6Addr, asgNetIfMACAddr, asgNetIfInfo, asgNetIfState, \
+        asgNetIfSpeed, asgNetIfMTU, asgNetIfDuplex, asgNetIfRx, asgNetIfTx = entry
         # if not asgNetIfIPv4Addr == asgNetIfIPv6Addr == '-':  # do not add interfaces without ip address
-        item = '%s' % (asgNetIfName)
-        parsed.update({item: CheckPointASGInterface(
+        parsed[asgNetIfName] = CheckPointASGInterface(
             asgNetIfIPv4Addr,
             asgNetIfIPv6Addr,
             asgNetIfMACAddr,
@@ -104,12 +105,12 @@ def parse_checkpoint_asg_interface(string_table: List[StringTable]) -> Dict:
             asgNetIfDuplex,
             int(asgNetIfRx),
             int(asgNetIfTx)
-        )})
+        )
 
     return parsed
 
 
-def discovery_checkpoint_asg_interface(section: Dict) -> DiscoveryResult:
+def discovery_checkpoint_asg_interface(section: Dict[str, CheckPointASGInterface]) -> DiscoveryResult:
     # sample section
     # 
     # {
@@ -134,59 +135,59 @@ def discovery_checkpoint_asg_interface(section: Dict) -> DiscoveryResult:
         yield Service(item=item, parameters={'asgNetIfSpeed': section[item].asgNetIfSpeed})
 
 
-def check_checkpoint_asg_interface(item, params, section: Dict) -> CheckResult:
+def check_checkpoint_asg_interface(item, params, section: Dict[str, CheckPointASGInterface]) -> CheckResult:
     try:
         asg_interface = section[item]
+    except KeyError:
+        yield Result(state=State.UNKNOWN, notice='Item not found in SNMP data.')
+        return
 
-        inv_asgNetIfSpeed = params['asgNetIfSpeed']
-
-        now = time.time()
-        value_store = get_value_store()
-
-        try:
-            in_rate = get_rate(value_store, 'in', now, asg_interface.asgNetIfRx, raise_overflow=True, )
-        except GetRateError as exc:
-            yield IgnoreResults(str(exc))
-        else:
-            yield from check_levels(in_rate, metric_name='if_in_octets', render_func=render.iobandwidth, label='In', )
-
-        out_rate = get_rate(value_store, 'out', now, asg_interface.asgNetIfTx, raise_overflow=True, )
-        yield from check_levels(out_rate, metric_name='if_out_octets', render_func=render.iobandwidth, label='Out', )
-
-        details = ''
-        details += '\nIPv4 Address: %s' % asg_interface.asgNetIfIPv4Addr
-        details += '\nIPv6 Address: %s' % asg_interface.asgNetIfIPv6Addr
-        details += '\nMAC Address: %s' % asg_interface.asgNetIfMACAddr
-        details += '\nType: %s' % asg_interface.asgNetIfInfo
-        details += '\nMTU: %s' % asg_interface.asgNetIfMTU
-        details += '\nDuplex: %s' % asg_interface.asgNetIfDuplex
-
-        if not asg_interface.asgNetIfIPv4Addr == '-':
-            summary = 'IPv4: %s' % asg_interface.asgNetIfIPv4Addr
-        else:
-            summary = 'IPv4: N/A'
-
-        yield Result(state=State.OK, summary=summary, details=details)
-
-        yield_text = 'State: %s' % asg_interface.asgNetIfState
-        if not asg_interface.asgNetIfState.lower() == '(up)/(up)':
-            yield Result(state=State.CRIT, summary=yield_text)
-        else:
-            yield Result(state=State.OK, summary=yield_text)
-
-        if not asg_interface.asgNetIfSpeed == inv_asgNetIfSpeed:
-            yield Result(state=State.WARN,
-                         summary='Speed: %s (%s expected)' % (asg_interface.asgNetIfSpeed, inv_asgNetIfSpeed))
-        elif not asg_interface.asgNetIfSpeed == 'NA':
-            yield Result(state=State.OK, summary='Speed %s' % asg_interface.asgNetIfSpeed)
-
-        if not asg_interface.asgNetIfDuplex.lower():
-            yield Result(state=State.CRIT, summary='Duplex: %s (Full expected)' % asg_interface.asgNetIfDuplex)
-        else:
-            yield Result(state=State.OK, summary='Duplex: %s' % asg_interface.asgNetIfDuplex)
+    inv_asgNetIfSpeed = params['asgNetIfSpeed']
 
-    except KeyError:
-        pass
+    now = time.time()
+    value_store = get_value_store()
+
+    try:
+        in_rate = get_rate(value_store, 'in', now, asg_interface.asgNetIfRx, raise_overflow=True, )
+    except GetRateError as exc:
+        yield IgnoreResults(str(exc))
+    else:
+        yield from check_levels(in_rate, metric_name='if_in_octets', render_func=render.networkbandwidth, label='In', )
+
+    out_rate = get_rate(value_store, 'out', now, asg_interface.asgNetIfTx, raise_overflow=True, )
+    yield from check_levels(out_rate, metric_name='if_out_octets', render_func=render.networkbandwidth, label='Out', )
+
+    details = ''
+    details += '\nIPv4 Address: %s' % asg_interface.asgNetIfIPv4Addr
+    details += '\nIPv6 Address: %s' % asg_interface.asgNetIfIPv6Addr
+    details += '\nMAC Address: %s' % asg_interface.asgNetIfMACAddr
+    details += '\nType: %s' % asg_interface.asgNetIfInfo
+    details += '\nMTU: %s' % asg_interface.asgNetIfMTU
+    details += '\nDuplex: %s' % asg_interface.asgNetIfDuplex
+
+    if not asg_interface.asgNetIfIPv4Addr == '-':
+        summary = 'IPv4: %s' % asg_interface.asgNetIfIPv4Addr
+    else:
+        summary = 'IPv4: N/A'
+
+    yield Result(state=State.OK, summary=summary, details=details)
+
+    yield_text = 'State: %s' % asg_interface.asgNetIfState
+    if not asg_interface.asgNetIfState.lower() == '(up)/(up)':
+        yield Result(state=State.CRIT, summary=yield_text)
+    else:
+        yield Result(state=State.OK, summary=yield_text)
+
+    if not asg_interface.asgNetIfSpeed == inv_asgNetIfSpeed:
+        yield Result(state=State.WARN,
+                     summary='Speed: %s (%s expected)' % (asg_interface.asgNetIfSpeed, inv_asgNetIfSpeed))
+    elif not asg_interface.asgNetIfSpeed == 'NA':
+        yield Result(state=State.OK, summary='Speed %s' % asg_interface.asgNetIfSpeed)
+
+    if not asg_interface.asgNetIfDuplex.lower():
+        yield Result(state=State.CRIT, summary='Duplex: %s (Full expected)' % asg_interface.asgNetIfDuplex)
+    else:
+        yield Result(state=State.OK, summary='Duplex: %s' % asg_interface.asgNetIfDuplex)
 
 
 register.snmp_section(
diff --git a/checkpoint_asg_interface.mkp b/checkpoint_asg_interface.mkp
index afc8d5541053c490a3cc5a95109765f3c1354e93..8f761411c1f27b9b1ca53ae97818f0d6943510a6 100644
Binary files a/checkpoint_asg_interface.mkp and b/checkpoint_asg_interface.mkp differ
diff --git a/packages/checkpoint_asg_interface b/packages/checkpoint_asg_interface
index daa8f3517159a71974da7f58acb22e6410d5e87b..a7a370c88c964d362a37bcb59ab91c81e5fed38b 100644
--- a/packages/checkpoint_asg_interface
+++ b/packages/checkpoint_asg_interface
@@ -10,5 +10,5 @@
  'title': 'Check Point Maestro SMO interfaces',
  'version': '20201109.v0.1',
  '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