first version compelete