begin solution 2