add interface abstraction for Fetch component