I have the solution, but it's not easy