final version1