diff --git a/src/app/services/util/profanity-filter.service.spec.ts b/src/app/services/util/profanity-filter.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..eedd82f92a4d343ff20c7590b230f0389f0bde1c
--- /dev/null
+++ b/src/app/services/util/profanity-filter.service.spec.ts
@@ -0,0 +1,17 @@
+/*import { TestBed } from '@angular/core/testing';
+
+import { ProfanityFilterService } from './profanity-filter.service';
+
+describe('ProfanityFilterService', () => {
+  let service: ProfanityFilterService;
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({});
+    service = TestBed.inject(ProfanityFilterService);
+  });
+
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+});
+*/
diff --git a/src/app/services/util/profanity-filter.service.ts b/src/app/services/util/profanity-filter.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9d96d23fcc8828e52ca9371a746181603d6c63f0
--- /dev/null
+++ b/src/app/services/util/profanity-filter.service.ts
@@ -0,0 +1,93 @@
+import { Injectable } from '@angular/core';
+import { Observable, Subject } from 'rxjs';
+import * as BadWords from 'naughty-words';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class ProfanityFilterService {
+
+  private customProfanityWords: Subject<string[]>;
+  private readonly profanityKey = 'custom-Profanity-List';
+  private profanityWords = [];
+
+  constructor() {
+    this.customProfanityWords = new Subject<string[]>();
+    this.profanityWords = BadWords['en']
+      .concat(BadWords['de'])
+      .concat(BadWords['fr'])
+      .concat(BadWords['ar'])
+      .concat(BadWords['ru'])
+      .concat(BadWords['es'])
+      .concat(BadWords['it'])
+      .concat(BadWords['nl'])
+      .concat(BadWords['pt'])
+      .concat(BadWords['tr']);
+  }
+
+  get getProfanityList(): string[] {
+    return this.getProfanityListFromStorage().concat(this.profanityWords);
+  }
+
+  getProfanityListFromStorage() {
+    const list = localStorage.getItem(this.profanityKey);
+    return list ? JSON.parse(list) : [];
+  }
+
+  getCustomProfanityList(): Observable<string[]> {
+    this.customProfanityWords.next(this.getProfanityListFromStorage());
+    return this.customProfanityWords.asObservable();
+  }
+
+  addToProfanityList(word: string) {
+    if (word !== undefined) {
+      const plist = this.getProfanityListFromStorage();
+      if (!plist.includes(word.toLowerCase().trim())) {
+        plist.push(word.toLowerCase().trim());
+        localStorage.setItem(this.profanityKey, JSON.stringify(plist));
+        this.customProfanityWords.next(plist);
+      }
+    }
+  }
+
+  removeFromProfanityList(word: string) {
+    const plist = this.getProfanityListFromStorage();
+    plist.splice(plist.indexOf(word, 0), 1);
+    localStorage.setItem(this.profanityKey, JSON.stringify(plist));
+    this.customProfanityWords.next(plist);
+  }
+
+  removeProfanityList() {
+    localStorage.removeItem(this.profanityKey);
+  }
+
+  filterProfanityWords(str: string, censorPartialWordsCheck: boolean, censorLanguageSpecificCheck: boolean, lang?: string){
+    let filteredString = str;
+    let profWords = [];
+    if (censorLanguageSpecificCheck) {
+      profWords = BadWords[(lang !== 'AUTO' ? lang.toLowerCase() : localStorage.getItem('currentLang'))];
+    } else {
+      profWords = this.profanityWords;
+    }
+    // eslint-disable-next-line max-len
+    const toCensoredString = censorPartialWordsCheck ? str.toLowerCase() : str.toLowerCase().split(/[\s,.]+/);
+    profWords.concat(this.getProfanityListFromStorage()).forEach(word => {
+      if (toCensoredString.includes(word)) {
+        filteredString = this.replaceString(filteredString, word, this.generateCensoredWord(word.length));
+      }
+    });
+    return filteredString;
+  }
+
+  private replaceString(str: string, search: string, replace: string) {
+    return str.replace(new RegExp(search, 'gi'), replace);
+  }
+
+  private generateCensoredWord(count: number) {
+    let res = '';
+    for (let i = 0; i < count; i++) {
+      res += '*';
+    }
+    return res;
+  }
+}
diff --git a/src/app/services/util/room-data.service.ts b/src/app/services/util/room-data.service.ts
index 28660f0d64bb6c5d90b01bb2ff5f1ca328d73dd4..5e24a138d622ecd14c7f646d08a0def56f58dbc3 100644
--- a/src/app/services/util/room-data.service.ts
+++ b/src/app/services/util/room-data.service.ts
@@ -6,7 +6,7 @@ import { Comment } from '../../models/comment';
 import { CommentService } from '../http/comment.service';
 import { CorrectWrong } from '../../models/correct-wrong.enum';
 import { RoomService } from '../http/room.service';
-import { TopicCloudAdminService } from './topic-cloud-admin.service';
+import { ProfanityFilterService } from './profanity-filter.service';
 import { ProfanityFilter, Room } from '../../models/room';
 import { WsRoomService } from '..//websockets/ws-room.service';
 
@@ -99,7 +99,7 @@ export class RoomDataService {
   constructor(private wsCommentService: WsCommentService,
               private commentService: CommentService,
               private roomService: RoomService,
-              private topicCloudAdminService: TopicCloudAdminService,
+              private profanityFilterService: ProfanityFilterService,
               private wsRoomService: WsRoomService) {
   }
 
@@ -173,7 +173,7 @@ export class RoomDataService {
   private filterCommentOfProfanity(room: Room, comment: Comment): string {
     const partialWords = room.profanityFilter === ProfanityFilter.all || room.profanityFilter === ProfanityFilter.partialWords;
     const languageSpecific = room.profanityFilter === ProfanityFilter.all || room.profanityFilter === ProfanityFilter.languageSpecific;
-    return this.topicCloudAdminService.filterProfanityWords(comment.body, partialWords, languageSpecific, comment.language);
+    return this.profanityFilterService.filterProfanityWords(comment.body, partialWords, languageSpecific, comment.language);
   }
 
   private removeCommentBodies(key: string) {
diff --git a/src/app/services/util/topic-cloud-admin.service.ts b/src/app/services/util/topic-cloud-admin.service.ts
index 1c38f86d265c1d4a26f9344720a8fc2f1c01df0d..1c923f11084b1eacc4b629e54e135110af177fac 100644
--- a/src/app/services/util/topic-cloud-admin.service.ts
+++ b/src/app/services/util/topic-cloud-admin.service.ts
@@ -1,5 +1,4 @@
 import { Injectable } from '@angular/core';
-import * as BadWords from 'naughty-words';
 import {
   TopicCloudAdminData,
   KeywordOrFulltext,
@@ -11,6 +10,7 @@ import { TranslateService } from '@ngx-translate/core';
 import { NotificationService } from './notification.service';
 import { Observable, Subject } from 'rxjs';
 import { WsRoomService } from '..//websockets/ws-room.service';
+import { ProfanityFilterService } from './profanity-filter.service';
 
 @Injectable({
   providedIn: 'root',
@@ -19,28 +19,15 @@ export class TopicCloudAdminService {
   private static readonly adminKey = 'Topic-Cloud-Admin-Data';
   private adminData: Subject<TopicCloudAdminData>;
   private blacklist: Subject<string[]>;
-  private profanityWords = [];
-  private customProfanityWords: Subject<string[]>;
-  private readonly profanityKey = 'custom-Profanity-List';
 
   constructor(private roomService: RoomService,
               private translateService: TranslateService,
               private wsRoomService: WsRoomService,
+              private profanityFilterService: ProfanityFilterService,
               private notificationService: NotificationService) {
     this.blacklist = new Subject<string[]>();
     this.adminData = new Subject<TopicCloudAdminData>();
-    this.customProfanityWords = new Subject<string[]>();
 
-    this.profanityWords = BadWords['en']
-      .concat(BadWords['de'])
-      .concat(BadWords['fr'])
-      .concat(BadWords['ar'])
-      .concat(BadWords['ru'])
-      .concat(BadWords['es'])
-      .concat(BadWords['it'])
-      .concat(BadWords['nl'])
-      .concat(BadWords['pt'])
-      .concat(BadWords['tr']);
     this.wsRoomService.getRoomStream(localStorage.getItem('roomId')).subscribe(msg => {
       const message = JSON.parse(msg.body);
       const room = message.payload.changes;
@@ -100,7 +87,7 @@ export class TopicCloudAdminService {
         _adminData.blacklist = list;
       }
       if (_adminData.profanityFilter !== ProfanityFilter.deactivated) {
-        _adminData.blacklist = _adminData.blacklist.concat(this.getProfanityListFromStorage().concat(this.profanityWords));
+        _adminData.blacklist = _adminData.blacklist.concat(this.profanityFilterService.getProfanityList);
       }
       this.adminData.next(_adminData);
     });
@@ -114,38 +101,6 @@ export class TopicCloudAdminService {
     return this.blacklist.asObservable();
   }
 
-  getProfanityListFromStorage() {
-    const list = localStorage.getItem(this.profanityKey);
-    return list ? JSON.parse(list) : [];
-  }
-
-  getCustomProfanityList(): Observable<string[]> {
-    this.customProfanityWords.next(this.getProfanityListFromStorage());
-    return this.customProfanityWords.asObservable();
-  }
-
-  addToProfanityList(word: string) {
-    if (word !== undefined) {
-      const plist = this.getProfanityListFromStorage();
-      if (!plist.includes(word.toLowerCase().trim())) {
-        plist.push(word.toLowerCase().trim());
-        localStorage.setItem(this.profanityKey, JSON.stringify(plist));
-        this.customProfanityWords.next(plist);
-      }
-    }
-  }
-
-  removeFromProfanityList(word: string) {
-    const plist = this.getProfanityListFromStorage();
-    plist.splice(plist.indexOf(word, 0), 1);
-    localStorage.setItem(this.profanityKey, JSON.stringify(plist));
-    this.customProfanityWords.next(plist);
-  }
-
-  removeProfanityList() {
-    localStorage.removeItem(this.profanityKey);
-  }
-
   getRoom(): Observable<Room> {
     return this.roomService.getRoom(localStorage.getItem('roomId'));
   }
@@ -195,34 +150,4 @@ export class TopicCloudAdminService {
         });
       });
   }
-
-  filterProfanityWords(str: string, censorPartialWordsCheck: boolean, censorLanguageSpecificCheck: boolean, lang?: string){
-    let filteredString = str;
-    let profWords = [];
-    if (censorLanguageSpecificCheck) {
-      profWords = BadWords[(lang !== 'AUTO' ? lang.toLowerCase() : localStorage.getItem('currentLang'))];
-    } else {
-      profWords = this.profanityWords;
-    }
-    // eslint-disable-next-line max-len
-    const toCensoredString = censorPartialWordsCheck ? str.toLowerCase() : str.toLowerCase().split(/[\s,.]+/);
-    profWords.concat(this.getProfanityListFromStorage()).forEach(word => {
-      if (toCensoredString.includes(word)) {
-        filteredString = this.replaceString(filteredString, word, this.generateCensoredWord(word.length));
-      }
-    });
-    return filteredString;
-  }
-
-  private replaceString(str: string, search: string, replace: string) {
-    return str.replace(new RegExp(search, 'gi'), replace);
-  }
-
-  private generateCensoredWord(count: number) {
-    let res = '';
-    for (let i = 0; i < count; i++) {
-      res += '*';
-    }
-    return res;
-  }
 }