Support for Python 2.6+, 3.3+