add a new class :Fetcher and fix some bugs