PROBLEM SOVLERS