finished adding remaining problems and auxiliary functions