path is not very specific, maybe path should be re-named as "searchRootPath" or "searchRootDirectory". Can we use System.IO.Path class insead of string as the input parameter because that will provide some validation of the legitimacy of the string. Alternatively, some validation at the beginning of the FindServiceRootDirectory would be helpful.