final version a