it's not clear to me if this is conceptually better or worse than what it replaces but it is about 25% faster