Added python 3 support and tests