how to solve design problems