this.WatchDog = function (require) {
    this.satisfied = {};
    for (var i in require) {
        this.satisfied[i] = false;
    }
    this.init();
};
this.WatchDog.prototype.action = function () {return false;};

this.WatchDog.prototype.init = function () {
    this.stroke = function (satisfy, action) {
        this.action = typeof action == 'function' ? action : this.action;
        this.satisfied[satisfy] = true;
        for (var n in this.satisfied) {
            if (this.satisfied[n] === false) {
                return false;
            }
        }
        this.action();
        return true;
    };
};
