Modified the implementation to work with both Python 2.x and 3.x.