added 1st pass problem framework