updated solution 5