More or less final version