Pure Python version
Pure Python version