move the location of the SPT-growing logic so the algorithm is easily restartable
create the runSearch method