add other functions, but there some error in crawle