Refactor and Python 3 support
Update changelog
Update requirements