Working python port!
Reorganize