finish first verion