work for finishing the first version