Finshed version1