Updated final version