docs: function _inputInterfaces (interfaces, msg, type, options, i = 0) {
  
  			return i >= interfaces.length ? Promise.resolve() : Promise.resolve().then(() => {
  
  				let result = null;
  
  					switch (type) {
  
  						case "log":
  							result = interfaces[i].log(msg, options);
  						break;
  						case "success":
  							result = interfaces[i].success(msg, options);
  						break;
  						case "information":
  							result = interfaces[i].information(msg, options);
  						break;
  						case "warning":
  							result = interfaces[i].warning(msg, options);
  						break;
  						case "error":
  							result = interfaces[i].error(msg, options);
  						break;
  
  						default:
  							// nothing to do here
  						break;
  
  					}
  
  				return null === result ? Promise.resolve() : Promise.resolve().then(() => {
  
  					if ("boolean" === typeof result) {
  
  						return result ? Promise.resolve() : Promise.reject(
  							new Error("Impossible to log \"" + msg + "\" message with \"" + type + "\" type on all the interfaces")
  						);
  
  					}
  					else {
  						return "object" === typeof result && result instanceof Promise ? result : Promise.resolve();
  					}
  
  				}).then(() => {
  					return _inputInterfaces(interfaces, msg, type, options, i + 1);
  				});
  
  			});
  
  		}