lib/occamsrazor.js
function adapt () {
    var context = this
    var args = ut.getArgs(arguments)
    var filteredAdapter = ut.filterAndSortOne(args, _adapters) // the most specific
    if (filteredAdapter) {
      ut.countdown(filteredAdapter)
      ut.filterArray(_adapters, ut.notExausted)
      return filteredAdapter.func.apply(context, args)
    }
  }
function adapt () {
    var context = this
    var args = ut.getArgs(arguments)
    var filteredAdapter = ut.filterAndSortOne(args, _adapters) // the most specific
    if (filteredAdapter) {
      ut.countdown(filteredAdapter)
      ut.filterArray(_adapters, ut.notExausted)
      return filteredAdapter.func.apply(context, args)
    }
  }
/*
public methods
 /* this function is posting an event: context "this" and arguments