completed 1st version.