difficult problems