# Source: SkeletonModule.js

    "use strict";

    /*
     * This is a skeleton module definition that you can use as a springboard to
     * develop new modules easily. It includes registering the module with
     * ForerunnerDB and shows how to use common helper methods such as mixins
     * and method synthesis, as well as providing a pattern to allow the constructor
     * method to be overridden by other modules.
     */

    var Shared,
    	Collection,
    	MyModule;

    Shared = require('./Shared');

    /**
     * Create a constructor method that calls the instance's init method.
     * This allows the constructor to be overridden by other modules because
     * they can override the init method with their own.
     * @class
     * @constructor
     */
    MyModule = function () {
    	this.init.apply(this, arguments);
    };

    MyModule.prototype.init = function () {
    	//var self = this;
    };

    // Tell ForerunnerDB about our new module
    Shared.addModule('MyModule', MyModule);

    // Mixin some commonly used methods
    Shared.mixin(MyModule.prototype, 'Mixin.Common');
    Shared.mixin(MyModule.prototype, 'Mixin.ChainReactor');
    Shared.mixin(MyModule.prototype, 'Mixin.Constants');
    Shared.mixin(MyModule.prototype, 'Mixin.Events');

    // Grab the collection module for use later
    Collection = Shared.modules.Collection;

    // Synthesize the getter/setter method "name()"
    Shared.synthesize(MyModule.prototype, 'name');

    // Add a new method to the Collection module
    Collection.prototype.myNewCollectionMethod = function () {

    };

    // Tell ForerunnerDB that our module has finished loading
    Shared.finishModule('MyModule');
    module.exports = MyModule;