#ifndef __PSWGEN_GENERATOR_IGENERATOR_H
 #  define __PSWGEN_GENERATOR_IGENERATOR_H
 
-#include "lib.h"
-
 #include <QObject>
 #include <QString>
 
  *
  * This interface is used to generate strong passwords.
  */
-class PSWGEN_GENERATOR_EXPORT iGenerator : public QObject
+struct iGenerator
 {
-    Q_OBJECT
-
-public:
-
-    /// Interface constructor
-    iGenerator() : QObject() {}
-
-    /// Empty virtual destructor
-    virtual ~iGenerator() {}
 
     /**
      * Flags for the password generator.
 } // namespace eVaf::PswGen
 } // namespace eVaf
 
+Q_DECLARE_INTERFACE(eVaf::PswGen::iGenerator, "eVaf.PswGen.iGenerator/1.0")
+
 #endif // igenerator.h
 
  * Implements the iGenerator interface using MD5 cryptographic hashes.
  */
 
-class GeneratorImpl : public iGenerator
+class GeneratorImpl : public QObject, public iGenerator
 {
     Q_OBJECT
+    Q_INTERFACES(eVaf::PswGen::iGenerator)
 
 public: