final version from 2024