Complete! compat with python2.7+, enjoy!