Python 3, better organisation. Work in progress.