Python 3 support

close #4