final solution.