diff --git a/WaterMark/PluginPreferenceHandler.h b/WaterMark/PluginPreferenceHandler.h
index 98571fc..ce72e17 100644
--- a/WaterMark/PluginPreferenceHandler.h
+++ b/WaterMark/PluginPreferenceHandler.h
@@ -36,16 +36,16 @@
 {
 public:
     PluginPreferenceHandler(const JAMI_PluginAPI* api,
-                         std::map<std::string, std::map<std::string, std::string>>&& preferences,
-                         const std::string& dataPath);
+                            std::map<std::string, std::map<std::string, std::string>>&& preferences,
+                            const std::string& dataPath);
     ~PluginPreferenceHandler();
 
-    virtual std::map<std::string, std::string> getHandlerDetails() override;
-    virtual bool preferenceMapHasKey(const std::string& key) override;
-    virtual void setPreferenceAttribute(const std::string& accountId,
-                                        const std::string& key,
-                                        const std::string& value) override;
-    virtual void resetPreferenceAttributes(const std::string& accountId) override;
+    std::map<std::string, std::string> getHandlerDetails() override;
+    bool preferenceMapHasKey(const std::string& key) override;
+    void setPreferenceAttribute(const std::string& accountId,
+                                const std::string& key,
+                                const std::string& value) override;
+    void resetPreferenceAttributes(const std::string& accountId) override;
 
     std::map<std::string, std::string> getPreferences(const std::string& accountId);
     void setWaterMarkHandler(WatermarkMediaHandler* handler);
