Much faster (esp with pypy)