Solving techniques