Added full python 3 support