Python 3.3+ support