so this one actually needs to work on Python 2 as well. I know it's a little annoying to do that.  Also, can this handle non-utf8?