This strikes me as overly complex. Too many versions each with very questionable utility.