Rewrite to work with both Python 2 and 3.