Initial version that supports Python 3.3+