Use WeakSet
Tests pasing on PyPy 2.1
Try to fix encoding issue