finish the version 1