completed the first version