diff --git a/package.json b/package.json
index d7b8336..400dd79 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "hivessh",
-  "version": "0.3.11",
+  "version": "0.3.12",
   "description": "HiveSsh simplifies SSH2 connections via promise-based task execution on Linux servers with built-in server utilities and powerful command execution functions",
   "main": "dist/index.js",
   "type": "module",
diff --git a/src/apm/checker.ts b/src/apm/checker.ts
index af379e4..b84984f 100644
--- a/src/apm/checker.ts
+++ b/src/apm/checker.ts
@@ -2,9 +2,9 @@ import { SshHost } from "../SshHost.js"
 import { Awaitable } from "../utils/base.js"
 import { AbstractPackageManager } from "./ApmInterface.js"
 import { AbstractPackageManagerWrapper } from "./apm.js"
-import { initAptApm } from "./apt.js"
-import { initDnfApm } from "./dnf.js"
-import { initYumApm } from "./yum.js"
+import { initAptApm } from "./impl/apt.js"
+import { initDnfApm } from "./impl/dnf.js"
+import { initYumApm } from "./impl/yum.js"
 
 export type ApmInit = (
     sshHost: SshHost
diff --git a/src/apm/apt.ts b/src/apm/impl/apt.ts
similarity index 94%
rename from src/apm/apt.ts
rename to src/apm/impl/apt.ts
index a83662c..790e5ec 100644
--- a/src/apm/apt.ts
+++ b/src/apm/impl/apt.ts
@@ -1,25 +1,24 @@
-import { SshChannelExit, StreamDataMapper } from "../SshExec.js"
-import { SshHost } from "../SshHost.js"
-import { Awaitable, trimAll } from "../utils/base.js"
-import { AbstractPackage, AbstractPackageManager, ApmInit } from "./apm.js"
+import { SshChannelExit, StreamDataMapper } from "../../SshExec.js"
+import { SshHost } from "../../SshHost.js"
+import { Awaitable, trimAll } from "../../utils/base.js"
+import { AbstractPackage, AbstractPackageManager, ApmInit } from "../apm.js"
 
 export const aptEnv = {
-    "LANG": "en_US.UTF-8",
-    "DEBIAN_FRONTEND": "noninteractive",
+    LANG: "en_US.UTF-8",
+    DEBIAN_FRONTEND: "noninteractive",
 }
 
 export const ignoredErrMsgs: string[] = [
     "debconf: unable to initialize frontend",
     "warning"
 ]
+
 export const ignoreMessageFilter: StreamDataMapper = (
     data: string
 ) => {
     let data2 = trimAll(data).toLowerCase()
     for (const msg of ignoredErrMsgs) {
         if (
-            data2.startsWith(msg) ||
-            data2.endsWith(msg) ||
             data2.includes(msg)
         ) {
             return undefined
diff --git a/src/apm/dnf.ts b/src/apm/impl/dnf.ts
similarity index 79%
rename from src/apm/dnf.ts
rename to src/apm/impl/dnf.ts
index 52bfc79..e40019e 100644
--- a/src/apm/dnf.ts
+++ b/src/apm/impl/dnf.ts
@@ -1,23 +1,29 @@
-import { SshChannelExit, StreamDataMapper } from "../SshExec.js"
-import { SshHost } from "../SshHost.js"
-import { Awaitable, filterEmpty } from "../utils/base.js"
-import { AbstractPackage, AbstractPackageManager, ApmInit } from "./apm.js"
+import { SshChannelExit, StreamDataMapper } from "../../SshExec.js"
+import { SshHost } from "../../SshHost.js"
+import { Awaitable, filterEmpty, trimAll } from "../../utils/base.js"
+import { AbstractPackage, AbstractPackageManager, ApmInit } from "../apm.js"
 
 export const dnfEnv = {
     LANG: "en_US.UTF-8"
 }
 
-export const ignoreDnfMessages: StreamDataMapper = (
+export const ignoredErrMsgs: string[] = [
+    "transaction completed",
+    "base",
+    "cleaning up",
+    "warning",
+]
+
+export const ignoreMessageFilter: StreamDataMapper = (
     data: string
 ) => {
-    const loweredData = data.toLowerCase()
-    if (
-        loweredData.includes("transaction completed") ||
-        loweredData.includes("base") ||
-        loweredData.includes("cleaning up") ||
-        loweredData.startsWith("warning:")
-    ) {
-        return undefined
+    let data2 = trimAll(data).toLowerCase()
+    for (const msg of ignoredErrMsgs) {
+        if (
+            data2.includes(msg)
+        ) {
+            return undefined
+        }
     }
     return data
 }
@@ -73,7 +79,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
             ).then()
@@ -84,7 +90,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
             ).then()
@@ -97,7 +103,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
             ).then(),
@@ -107,7 +113,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
             ).then(),
@@ -119,7 +125,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
             ).then(),
@@ -129,7 +135,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
             ).then(),
@@ -142,7 +148,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
 
@@ -154,7 +160,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
 
@@ -166,7 +172,7 @@ export const initDnfApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreDnfMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: dnfEnv,
                 }
 
diff --git a/src/apm/yum.ts b/src/apm/impl/yum.ts
similarity index 79%
rename from src/apm/yum.ts
rename to src/apm/impl/yum.ts
index df0e434..7e486d5 100644
--- a/src/apm/yum.ts
+++ b/src/apm/impl/yum.ts
@@ -1,21 +1,29 @@
-import { SshChannelExit, StreamDataMapper } from "../SshExec.js"
-import { SshHost } from "../SshHost.js"
-import { Awaitable, filterEmpty } from "../utils/base.js"
-import { AbstractPackage, AbstractPackageManager, ApmInit } from "./apm.js"
+import { SshChannelExit, StreamDataMapper } from "../../SshExec.js"
+import { SshHost } from "../../SshHost.js"
+import { Awaitable, filterEmpty, trimAll } from "../../utils/base.js"
+import { AbstractPackage, AbstractPackageManager, ApmInit } from "../apm.js"
 
 export const yumEnv = {
     LANG: "en_US.UTF-8"
 }
 
-export const ignoreYumMessages: StreamDataMapper = (data: string) => {
-    const loweredData = data.toLowerCase()
-    if (
-        loweredData.includes("transaction completed") ||
-        loweredData.includes("base") ||
-        loweredData.includes("cleaning up") ||
-        loweredData.startsWith("warning:")
-    ) {
-        return undefined
+export const ignoredErrMsgs: string[] = [
+    "transaction completed",
+    "base",
+    "cleaning up",
+    "warning",
+]
+
+export const ignoreMessageFilter: StreamDataMapper = (
+    data: string
+) => {
+    let data2 = trimAll(data).toLowerCase()
+    for (const msg of ignoredErrMsgs) {
+        if (
+            data2.includes(msg)
+        ) {
+            return undefined
+        }
     }
     return data
 }
@@ -66,7 +74,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then()
@@ -77,7 +85,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then()
@@ -90,7 +98,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then(),
@@ -100,7 +108,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then(),
@@ -112,7 +120,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then(),
@@ -122,7 +130,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then(),
@@ -134,7 +142,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then(parseYumList),
@@ -144,7 +152,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then(parseYumList),
@@ -154,7 +162,7 @@ export const initYumApm: ApmInit = (
                 {
                     sudo: true,
                     timeoutMillis: cmdTimeoutMillis,
-                    mapErrOut: ignoreYumMessages,
+                    mapErrOut: ignoreMessageFilter,
                     env: yumEnv,
                 }
             ).then(parseYumDescription),