completed solution 1