up-to-date, final version