Updated and revamped, should support Py3