final version2