refactoring + http fetch timeout