callback to solve the problem instead