finished 1st version