Add OverlapSolver class and tests