diff --git a/agent_based/utils/checkpoint_threat_emulation.py b/agent_based/utils/checkpoint_threat_emulation.py
deleted file mode 100644
index b48b94e3d425a5fa70fa978610fc2e08d0866f6f..0000000000000000000000000000000000000000
--- a/agent_based/utils/checkpoint_threat_emulation.py
+++ /dev/null
@@ -1,287 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# License: GNU General Public License v2
-#
-# Author: thl-cmk[at]outlook[dot]com
-# URL   : https://thl-cmk.hopto.org
-# Date  : 2018-03-14
-#
-# Monitor status of Check Point Threat Emulation
-#
-# 2018-05-02: fixed: monthly_quota_on_cloud_used = ''
-# 2018-05-30: removed 'unknown' OIDs
-#             removed counters for last day, last week, last month
-#             code cleanup
-# 2020-06-08: changed snmp-scan function
-# 2021-08-27: rewritten for CMK 2.0
-#
-# snmpwalk sample
-#
-# sample info
-#
-# [
-#  [
-#   [u'0%', u'0', u'up-to-date', u'Gateway is up to date.', u'1548979200', u'100000', u'100000', u'valid', u'ok',
-#    u'Quota subscription is valid', u'990002053', u'0', u'ok', u'']
-#   ],
-#  [
-#   [u'0', u'0', u'0', u'0', u'0', u'0', u'0', u'0']
-#  ]
-# ]
-#
-# threat emulation not active
-# [[], []]
-#
-
-import time
-from dataclasses import dataclass
-from typing import List, Optional, Tuple
-
-from cmk.base.plugins.agent_based.agent_based_api.v1 import (
-    register,
-    Service,
-    Result,
-    check_levels,
-    State,
-    SNMPTree,
-    all_of,
-    startswith,
-    any_of,
-    equals,
-    Metric,
-)
-from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
-    DiscoveryResult,
-    CheckResult,
-    StringTable,
-)
-
-
-@dataclass
-class CheckpointTeStatus:
-    current_files_waiting_for_emulation: int
-    teUpdateStatus: str
-    teUpdateDesc: str
-    teSubscriptionExpDate: int
-    teSubscriptionExpDateStr: str
-    quota_on_cloud: int
-    remaining_quota_on_cloud: int
-    teSubscriptionStatus: str
-    teCloudSubscriptionStatus: str
-    teSubscriptionDesc: str
-    build: str
-    teStatusCode: int
-    teStatusShortDesc: str
-    teStatusLongDesc: str
-    metric_count: List[Tuple[str, int]]
-    monthly_quota_on_cloud_used: Optional[int] = None
-
-
-def parse_checkpoint_threat_emulation(string_table: List[StringTable]) -> Optional[CheckpointTeStatus]:
-    testatus, tecounter = string_table
-    try:
-        monthly_quota_on_cloud_used, current_files_waiting_for_emulation, teUpdateStatus, teUpdateDesc, \
-        teSubscriptionExpDate, quota_on_cloud, remaining_quota_on_cloud, teSubscriptionStatus, \
-        teCloudSubscriptionStatus, teSubscriptionDesc, build, teStatusCode, teStatusShortDesc, \
-        teStatusLongDesc = testatus[0]
-    except(IndexError, ValueError):
-        return
-
-    scanned_files, malicious_files_detected, files_scanned_by_threat_cloud, malicious_files_detected_by_threat_cloud, \
-    average_process_time, average_emulated_file_size, average_queue_size, peak_queue_size, = tecounter[0]
-
-    metric_count = [
-        ('scanned_files', int(scanned_files)),
-        ('malicious_files_detected', int(malicious_files_detected)),
-        ('files_scanned_by_threat_cloud', int(files_scanned_by_threat_cloud)),
-        ('malicious_files_detected_by_threat_cloud', int(malicious_files_detected_by_threat_cloud)),
-        ('average_process_time', int(average_process_time)),
-        ('average_emulated_file_size', int(average_emulated_file_size)),
-        ('average_queue_size', int(average_queue_size)),
-        ('peak_queue_size', int(peak_queue_size)),
-    ]
-
-    monthly_quota_on_cloud_used = monthly_quota_on_cloud_used.replace('%', '')
-
-    if teStatusCode != '3':  # possible TE not activated
-        return CheckpointTeStatus(
-            monthly_quota_on_cloud_used=int(monthly_quota_on_cloud_used) if monthly_quota_on_cloud_used.isdigit() else None,
-            current_files_waiting_for_emulation=int(current_files_waiting_for_emulation),
-            teUpdateStatus=teUpdateStatus,
-            teUpdateDesc=teUpdateDesc,
-            teSubscriptionExpDate=int(teSubscriptionExpDate),
-            teSubscriptionExpDateStr=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(teSubscriptionExpDate)),
-            quota_on_cloud=int(quota_on_cloud),
-            remaining_quota_on_cloud=int(remaining_quota_on_cloud),
-            teSubscriptionStatus=teSubscriptionStatus,
-            teCloudSubscriptionStatus=teCloudSubscriptionStatus,
-            teSubscriptionDesc=teSubscriptionDesc.replace('\n', ' '),
-            build=build,
-            teStatusCode=int(teStatusCode),
-            teStatusShortDesc=teStatusShortDesc,
-            teStatusLongDesc=teStatusLongDesc,
-            metric_count=metric_count
-        )
-
-
-def discovery_checkpoint_threat_emulation(section: CheckpointTeStatus) -> DiscoveryResult:
-    yield Service()
-
-
-def check_checkpoint_threat_emulation(params, section: CheckpointTeStatus) -> CheckResult:
-    yield Result(state=State.OK, summary=f'Subscription valid until: {section.teSubscriptionExpDateStr}')
-    yield Result(state=State.OK, summary=f'Build: {section.build}')
-
-    if section.teUpdateStatus != 'up-to-date':
-        yield Result(state=State.WARN, notice=f'Update status {section.teUpdateStatus}, {section.teUpdateDesc}')
-    if not section.teStatusCode == 0:
-        yield Result(state=State.WARN, notice=f'Status {section.teStatusShortDesc}, {section.teStatusLongDesc}')
-    if section.teSubscriptionStatus != 'valid':
-        yield Result(state=State.WARN, notice=f'Subscription status: {section.teCloudSubscriptionStatus}, {section.teSubscriptionDesc}')
-    if section.teCloudSubscriptionStatus != 'ok':
-        yield Result(state=State.WARN, notice=f'Cloud subscription status {section.teCloudSubscriptionStatus}')
-
-    for levels, metric, label, value in [
-        (params.get('used_monthly_quota_levels'), 'monthly_quota_on_cloud_used', 'Used quota on cloud', section.monthly_quota_on_cloud_used),
-        (params.get('remaining_quota_levels'), 'remaining_quota_on_cloud', 'Remaining quota on cloud', section.remaining_quota_on_cloud),  # max: quota_on_cloud
-        (params.get('files_waiting_levels'), 'current_files_waiting_for_emulation', 'Current files waiting for emulation', section.current_files_waiting_for_emulation),  # max: quota_on_cloud
-    ]:
-        if value:
-            yield from check_levels(
-                value=value,
-                label=label,
-                levels_upper=levels,
-                metric_name=metric,
-                render_func=lambda v: f'{v:.0f}'
-            )
-
-    for metric, value in section.metric_count:
-        yield Metric(
-            value=value,
-            name=f'checkpoint_threat_emulation_{metric}_current'
-        )
-
-
-register.snmp_section(
-    name='checkpoint_threat_emulation',
-    parse_function=parse_checkpoint_threat_emulation,
-    fetch=[
-        SNMPTree(
-            base='.1.3.6.1.4.1.2620.1.49',  # CHECKPOINT-MIB::te (status)
-            oids=[
-                '3',  # monthly_quota_on_cloud_used
-                '12',  # current_files_waiting_for_emulation
-                '16',  # teUpdateStatus
-                '17',  # teUpdateDesc
-                '20',  # teSubscriptionExpDate
-                '22',  # quota_on_cloud
-                '23',  # remaining_quota_on_cloud
-                '25',  # teSubscriptionStatus
-                '26',  # teCloudSubscriptionStatus
-                '27',  # teSubscriptionDesc
-                '30',  # build
-                '101',  # teStatusCode
-                '102',  # teStatusShortDesc
-                '103',  # teStatusLongDesc
-            ]
-        ),
-        SNMPTree(
-            base='.1.3.6.1.4.1.2620.1.49',  # CHECKPOINT-MIB::te (counter)
-            oids=[
-                '4.1',  # scanned_files current
-                '5.1',  # malicious_files_detected current
-                '6.1',  # files_scanned_by_threat_cloud current
-                '7.1',  # malicious_files_detected_by_threat_cloud current
-                '8.1',  # average_process_time current
-                '9.1',  # average_emulated_file_size current
-                '10.1',  # average_queue_size current
-                '11.1',  # peak_queue_size current
-            ]
-        ),
-
-    ],
-    detect=any_of(
-        startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.2620'),
-        all_of(
-            equals('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.8072.3.2.10'),
-            equals('.1.3.6.1.4.1.2620.1.6.1.0', 'SVN Foundation'),
-        )
-    )
-)
-
-register.check_plugin(
-    name='checkpoint_threat_emulation',
-    service_name='Threat Emulation status',
-    discovery_function=discovery_checkpoint_threat_emulation,
-    check_function=check_checkpoint_threat_emulation,
-    check_ruleset_name='checkpoint_threat_emulation',
-    check_default_parameters={
-        'used_monthly_quota_levels': [90, 95],
-        'remaining_quota_levels': [10000, 5000],
-        'files_waiting_levels': [5, 10],
-    }
-)
-
-
-# Name Last Day Last Week Last Month
-# Scanned Files 0 0 0
-# Malicious Files Detected 0 0 0
-# Average Process Time 0 Sec 0 Sec 0 Sec
-# Average Emulated File Size 0 B 0 B 0 B
-# Average Queue Size 0 0 0
-# Peak Queue Size 0 0 0
-#
-# Scanned Files in the Last 7 Days: 0
-# Malicious Files Detected in the Last 7 Days: 0
-# Remaining Quota on Cloud: "Wait"
-# Monthly Quota on Cloud Used: NaN%
-
-# ('.1.3.6.1.4.1.2620.1.49.2.1', [
-#   '1',  #
-#   '2',  #
-#   '3',  #
-#   '4',  #
-#   '5',  #
-#   '6',  #
-#   '7',  #
-#   '8',  #
-#   '9',  #
-#   '10',  #
-#   '11',  #
-#   ]),
-
-# if item == 'anaylsis':
-#
-#     #
-#     # sample te_analysis
-#     #
-#     # [[u'1', u'Image', u'1afbde2e-d593-45a8-a686-6cbd42f37823', u'', u'0', u'0', u'0', u'0', u'0', u'0', u'0'],
-#     #  [u'2', u'Image', u'1b0c5014-714d-47f3-9b10-0b7ee386e745', u'', u'0', u'0', u'0', u'0', u'0', u'0', u'0'],
-#     #  [u'3', u'Image', u'5e5de275-a103-4f67-b55b-47532918fa59', u'Win7,Office 2013,Adobe 11', u'0', u'0', u'0', u'0', u'0', u'0', u'0'],
-#     #  [u'4', u'Image', u'e50e99f3-5963-4573-af9e-e3f4750b55e2', u'WinXP,Office 2003/7,Adobe 9', u'0', u'0', u'0', u'0', u'0', u'0', u'0'],
-#     #  [u'5', u'Detection Rules', u'5e5de275-a103-4f67-b55b-47532918fa59', u'Win7,Office 2013,Adobe 11', u'56431', u'46960', u'Thu Mar 15 08:39:31 2018', u'0', u'0', u'0', u'0'],
-#     #  [u'6', u'Detection Rules', u'e50e99f3-5963-4573-af9e-e3f4750b55e2', u'WinXP,Office 2003/7,Adobe 9', u'56431', u'52602', u'Thu Mar 15 08:39:26 2018', u'0', u'0', u'0', u'0'],
-#     #  [u'7', u'Static Analysis Rules', u'496149D5-0689-472B-8F50-21DD409F0EC6', u'Static Analysis Detection Rules', u'53030', u'25049', u'Thu Mar 15 08:39:24 2018', u'0', u'0', u'0', u'0']]
-#     #
-#     #  eher fuer inventory (?)
-#     #
-#
-#     te_analysis_1, te_analysis_2, te_analysis_3, te_analysis_4, te_analysis_5, te_analysis_6, te_analysis_7, \
-#     te_analysis_8, te_analysis_9, te_analysis_10, te_analysis_11 = te_analysis[0]
-#
-#     infotext = ''
-#
-#     longoutput += '\nte_analysis_1 : %s (Status)' % te_analysis_1
-#     longoutput += '\nte_analysis_2 : %s (Cloud or Local: Image --> local, Static Analysis Rules --> Cloud (??))' % te_analysis_2
-#     longoutput += '\nte_analysis_3 : %s (UID)' % te_analysis_3
-#     longoutput += '\nte_analysis_4 : %s (Name)' % te_analysis_4
-#     longoutput += '\nte_analysis_5 : %s (Revision)' % te_analysis_5
-#     longoutput += '\nte_analysis_6 : %s (Size in Bytes)' % te_analysis_6
-#     longoutput += '\nte_analysis_7 : %s (Download Time)' % te_analysis_7
-#     longoutput += '\nte_analysis_8 : %s' % te_analysis_8
-#     longoutput += '\nte_analysis_9 : %s' % te_analysis_9
-#     longoutput += '\nte_analysis_10: %s' % te_analysis_10
-#     longoutput += '\nte_analysis_11: %s' % te_analysis_11
-#
-#     state = 0