finshed version