sub-problems