solution in details