i was wrong, this implementation is faster