reviving this project in python