/**
 * Generates a Ghastly client given a Discord.js client.
 * @param {Function} discordClient - The Discord.js client constructor which acts as the base for the returned client.
 * @param {Object} [clientOptions={}] - Options to specify configuration upon creation of the client.
 * @returns {Ghastly} The Ghastly client.
 */
export default (discordClient, clientOptions = {}) => (
  new (class extends discordClient {
    /**
     * Constructor.
     * @param {Object} [options={}] - Options to configure the client.
     */
    constructor(options = {}) {
      const { ...discordOptions } = options;
      super(discordOptions);
    }

    addCommand(command) {
      return this;
    }
  })(clientOptions)
);

@@ -1,12 +1,71 @@
+import CommandRegistry from '../command/CommandRegistry';%0A%0A
 /**%0A * Gener
@@ -86,16 +86,28 @@
  client 
+constructor 
 given a 
@@ -146,24 +146,17 @@
 nction%7D 
-discordC
+c
 lient - 
@@ -202,16 +202,21 @@
  acts as
+%0A *  
  the bas
@@ -250,126 +250,25 @@
  * @
-param %7BObject%7D %5BclientOptions=%7B%7D%5D - Options to specify configuration upon creation of the client.%0A * @returns %7BGhastly
+returns %7BFunction
 %7D Th
@@ -279,24 +279,36 @@
 astly client
+ constructor
 .%0A */%0Aexport
@@ -320,78 +320,99 @@
 ult 
-(discordClient, clientOptions = %7B%7D) =%3E (%0A  new (class extends discordC
+client =%3E (%0A  /**%0A   * @classdesc The Ghastly client class.%0A   */%0A  class Ghastly extends c
 lien
@@ -564,153 +564,178 @@
     
-const %7B ...discordOptions %7D = options;%0A      super(discordOptions);%0A    %7D%0A%0A    addCommand(command) %7B%0A      return this;%0A    %7D%0A  %7D)(clientOptions)
+super(options);%0A%0A      /**%0A       * The command registry for the client.%0A       * @type %7BCommandRegistry%7D%0A       */%0A      this.registry = new CommandRegistry();%0A    %7D%0A  %7D
 %0A);%0A

Change make() to return a class.