rework so that we can work with both strings in python2 and returning bytes in python3
installation stuff for python3