Major update. The old version is available in the old branch