add fetch implementation