first version is completed