Interaction.prototype.whenDone = function (fn) {
        if (typeof fn !== 'function') {
            throw new Error('whenDone(...) argument must be a function');
        }
        this.$whenDone.push(fn);