finished the first version.