solving techniques