finished solution 3